我正在使用一个名为:
公共类 ProcessFlowPersistenceIOParticipant : PersistenceIOParticipant
它继承自 WF4 框架中的 System.Activities.Persistence.PersistenceIOParticipant。
我想覆盖 BeginOnLoad(..) 方法。
在这个覆盖中,我想拦截工作流实例的反序列化,并将实体数据库中的业务实体注入到实体工作流变量中。
BeginOnLoad 在从实例存储加载工作流实例时触发。
通过:workflowApplication.Load(workflowInstanceGuid);
我可以在 readwritevalues 字典中看到工作流指南。
在 readWriteValues.Keys 匹配命名空间“urn:schemas-microsoft-com:System.Activities/4.0/properties”中找到键
然后指南在里面:
值 = readWriteValues[xName]; _workflowInstanceId = ((System.Activities.Runtime.ActivityExecutor)value).WorkflowInstanceId;
它可以通过调试器访问,但不能在代码中访问,因为 ActivityExecutor 是一个内部类。
那么有没有办法确定 BeginOnLoad 中正在加载什么工作流实例?
非常感谢任何提示。
麦克风
这个问题类似于BeginOnSave 内部的访问工作流 id。但是,在 BeginOnLoad 的情况下,没有可用于获取工作流实例 guid 的活动执行上下文。