工作流 activity 状态记录

Workflow activity status logging

我是工作流程的新手。我创建了一个小型工作流程。并在其中放置一些自定义活动。

现在我想记录此活动完成时的状态以及输入和输出参数的位置。

与我们在 TFS Build 中看到的类似。

您可以将 TrackingParticipant 定义为要为 WorkflowApplication 添加的扩展名。

Custom Tracking Participant

using System.Activities.Tracking;

public class MyTrackingParticipant : TrackingParticipant
{
    protected override void Track(TrackingRecord record, TimeSpan timeout)
    {
        if (record is WorkflowInstanceRecord)
        {
            var wfInstanceRecord = record as WorkflowInstanceRecord;
            Console.WriteLine($"My workflow's current state: {wfInstanceRecord.State}");
        }

        if (record is ActivityStateRecord)
        {
            var activityStateRecord = record as ActivityStateRecord;
            Console.WriteLine($"Activity: {activityStateRecord.Activity.Name} State: {activityStateRecord.State} Timestamp: {activityStateRecord.EventTime}");
        }
    }
}

Register the Custom Tracking Participant

var wfApp = new WorkflowApplication(myActivity);
wfApp.Extensions.Add(new MyTrackingParticipant());
wfApp.Run();