Dela via


Hämta WorkflowInstanceId

Exemplet GetWorkflowInstanceId visar hur du använder den anpassade aktiviteten GetWorkflowInstanceId för att returnera arbetsflödesinstansens ID.

Demonstrerar

Anpassad aktivitetsutveckling, åtkomst till arbetsflödesinstansen.

Diskussion

Att hämta instans-ID:t för ett arbetsflöde som körs kräver att du skriver kod. Om du vill skriva ett fullständigt deklarativt arbetsflöde behöver du en aktivitet som kan returnera arbetsflödesinstans-ID:t så att aktiviteten kan refereras i arbetsflödet för att ge en fullständigt deklarativ arbetsflödesredigering. Många scenarier kräver åtkomst till instans-ID: några exempel är för loggning eller granskning eller för att göra korrelation på programnivå genom att ange instans-ID:t tillbaka till en klient för framtida association (till exempel genom att använda den här aktiviteten i en SendReply-aktivitet).

GetWorkflowInstanceId implementeras som ett CodeActivity<TResult> eftersom det måste returnera ett värde av typen Guid, och det måste ha åtkomst till CodeActivityContext för att få arbetsflödets instans-ID. Genomförandet är ganska grundläggande.

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