我面临一个关于WF4和CustomTrackingRecord的问题,用于通过WorkflowInvoker从 .xaml 动态加载的子工作流。执行效果非常好,我能够跟踪 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 发生了什么。
任何的想法?语境问题?类型问题?
谢谢,弗朗西斯科