我是Work Flows的新手。我创建了一个小工作流程。并在其中放置一些自定义活动。
现在我想记录这些活动的状态,以及它们何时完成以及输入和输出参数的位置。
与我们在TFS Build中看到的类似。
答案 0 :(得分:1)
您可以将TrackingParticipant
定义为要为WorkflowApplication
添加的扩展程序。
自定义跟踪参与者
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}");
}
}
}
注册自定义跟踪参与者
var wfApp = new WorkflowApplication(myActivity);
wfApp.Extensions.Add(new MyTrackingParticipant());
wfApp.Run();