我试图了解如何在不知道活动的具体类型的情况下恢复(加载)以前持久的 WF4 活动。
为了加载一个持久化的活动,我不仅需要它workflowId
(我有),而且我还需要传递一个活动的实例——所以我需要知道它的类型:
var workflowApplication = new WorkflowApplication(activity); // what type is activity?
workflowApplication.Load(workflowId);
问题在于它可能是多种类型中的一种 - 此活动旨在用于其他活动和工作流:它将消息发送到消息队列、书签然后持续存在。当通过消息队列接收到相应的消息时会恢复它,但如果不检查持久性数据,我不知道原始工作流的确切具体类型。这似乎是第 22 条规则。我无法在不知道活动类型的情况下加载工作流,如果不加载工作流并检查其持久数据,我也无法知道活动类型。
我觉得我在这里遗漏了一些东西 - 有没有办法在不知道活动的情况下创建托管 WorkflowActivity,或者activity
在创建之前重新加载持久性数据以计算出实际类型WorkflowActivity
?