[英]Tracking child workflow internal activities
我是從由名為.xaml面臨WorkflowInvoker關於WF4和CustomTrackingRecord兒童工作流程的一個問題動態加載。 執行工作非常好,我可以跟蹤InArguments和OutArguments,但不能像內部0級工作流(父級)那樣跟蹤內部活動。 這里是InArgs和OutArgs跟蹤的代碼。
var userRecord = new CustomTrackingRecord("InArguments");
foreach (var kvp in inArgs) {
userRecord.Data.Add(kvp.Key, kvp.Value == null ? "" : kvp.Value.ToString());
}
context.Track(userRecord);
...
WorkflowInvoker invoker = new WorkflowInvoker(dynamicActivity);
outArgs = invoker.Invoke(inArgs);
foreach (string argumentKey in outArgs.Keys) {
this.ChildArguments[argumentKey].Set(context, outArgs[argumentKey]);
}
userRecord = new CustomTrackingRecord("OutArguments");
foreach (var kvp in outArgs) {
userRecord.Data.Add(kvp.Key, kvp.Value == null ? "" : kvp.Value.ToString());
}
context.Track(userRecord);
我非常確定invoker.Invoke(inArgs)應該啟動標准的跟蹤系統,用幾句話說來,完美的方法可以用來了解Activity發生了什么,但是似乎忽略了DynamicActivity發生了什么。
任何想法? 上下文問題? 類型問題?
謝謝弗朗切斯科
WorkflowInvoker是一個具有自己擴展名的不同執行。 因此,要將這些事件添加到同一TrackingParticipant中,您需要將其添加到invoker.Extensions集合中。
就像是:
var invoker = new WorkflowInvoker(dynamicActivity);
var tracker = context.GetExtension<TrackingParticipant>();
invoker.Extensions.Add(tracker);
outArgs = invoker.Invoke(inArgs);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.