Ottenere WorkflowInstanceIdGet WorkflowInstanceId

In questo esempio viene illustrato come usare l'attività personalizzata, GetWorkflowInstanceId, per restituire l'ID istanza del flusso di lavoro.This sample demonstrates how to use the custom activity, GetWorkflowInstanceId to return the workflow instance ID.

DimostrazioneDemonstrates

Sviluppo dell'attività personalizzata, come accedere all'istanza del flusso di lavoro.Custom activity development, how to access the workflow instance.

DiscussioneDiscussion

L'acquisizione dell'ID istanza di un flusso di lavoro in esecuzione richiede che venga scritto codice.Getting the instance ID of a running workflow requires writing code. Se si desidera scrivere un flusso di lavoro completamente dichiarativo, è necessaria un'attività che possa restituire l'ID istanza del flusso di lavoro in modo che sia possibile fare riferimento all'attività nel flusso di lavoro per fornire una creazione di flussi di lavoro completamente dichiarativa.If you want to write a fully-declarative workflow, then you need an activity that can return the workflow instance ID so that the activity can be referenced in the workflow to provide a fully-declarative workflow authoring experience. Molti scenari richiedono l'accesso all'ID istanza: alcuni esempi sono per la registrazione o il controllo degli scopi o per eseguire la correlazione a livello di applicazione fornendo di nuovo l'ID istanza a un client per l'associazione futura (ad esempio, tramite questa attività in un'attività SendReply).Many scenarios require access to the instance ID: a few examples are for logging or auditing purposes or for doing application-level correlation by providing the instance ID back to a client for future association (for example, by using this activity inside a SendReply activity).

L'oggetto GetWorkflowInstanceId viene implementato come oggetto CodeActivity<TResult> perché deve restituire un valore di tipo Guid e deve disporre dell'accesso all'oggetto CodeActivityContext per l'acquisizione dell'ID istanza del flusso di lavoro.GetWorkflowInstanceId is implemented as a CodeActivity<TResult> because it must return a value of type Guid, and it must have access to the CodeActivityContext for getting the workflow’s instance ID. L'implementazione è abbastanza semplice.Its implementation is fairly basic.

public sealed class GetWorkflowInstanceId : CodeActivity<Guid>  
{  
protected override Guid Execute(CodeActivityContext context)  
        {  
            return context.WorkflowInstanceId;  
        }  
}  

Importante

È possibile che gli esempi siano già installati nel computer.The samples may already be installed on your machine. Verificare la directory seguente (impostazione predefinita) prima di continuare.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Se questa directory non esiste, andare al Windows Communication Foundation (WCF) e gli esempi di Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti i Windows Communication Foundation (WCF) e WFWF esempi.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WFWF samples. Questo esempio si trova nella directory seguente.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\GetWorkflowInstanceId