簡體   English   中英

跟蹤子工作流程內部活動

[英]Tracking child workflow internal activities

我是從由名為.xaml面臨WorkflowInvoker關於WF4CustomTrackingRecord兒童工作流程的一個問題動態加載。 執行工作非常好,我可以跟蹤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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM