2010-09-24 85 views
0

因此,在开始使用3.5之后,我开始使用新的工作流enginge(Windows Workflow Foundation 4-WF 4)。我必须说它大大改善了!但是,现在我正尝试将一些现有的工作流移植到WF 4中,并遇到了一些问题(总是如此)。Windows工作流4,持久性和数据服务

所以我的主要问题是,在WF 3中,它全部是基于接口的,工作流运行时负责在应用程序启动时“链接”接口和实现,并且工作流在序列化时从未拥有对象的实例本身到数据库,这正是我想要的,因为我不希望我的数据服务被序列化。

现在在WF 4中,我似乎需要将数据服务作为参数传递给工作流,因此,当它保存到数据库时,它也会序列化变量。这些是长时间运行的工作流程,具有审批步骤等,所以我需要在空闲时坚持工作流程。

我是否错过了一些东西,或许是在思考旧的WF 3 mentaility?还是有我可以用来做到这一点的模式?

回答

0

在WF4工作流程或活动扩展中替换WF3服务。您可以使用与WorklfowApplication或WorkflowServiceHost相似的方式添加它们,也可以将它们添加到活动的CacheMetadata函数中。

+0

我想我可以更清楚一点......我们将数据存储库包装在一个Class中,我们称之为服务,所以我并不是指例如WCF服务的方式。我发现了一种处理这种方式的方法,使用IoC包装器传递到WF4活动并调用IoC以在需要时获取实例,而不是将其存储在实现可能持续的任何位置。 – doobist 2010-10-08 16:34:33