1

我目前负责开发一种在我们的应用程序中使用 WF 的方法,并且我有一套需要遵循的要求。

  • 我需要能够纯粹在文本上定义工作流,以便我可以存储和检索它以执行。
  • 在工作流执行期间,需要在活动之间传递数据对象,以便它们可以对其执行操作。
  • 活动由外部类定义,活动需要访问定义它们的类的实例,以便它们可以调用其方法。

我一直在研究 WF,我想出了一些解决方案,但我不确定它们是否是最好的。

我最大的问题之一是为活动提供定义它们的类的实例。有没有办法为工作流运行时提供一个活动工厂或类似的东西?另一个问题来自使用纯 XAML 工作流定义。我需要能够将 DataObject 传递给第一个活动,以便它可以在工作流中使用。

我很难解释这个问题,我希望它足够清楚。

任何帮助将不胜感激。谢谢。

4

4 回答 4

1

关于向运行时提供在 XOML 工作流上下文中使用的外部活动,请查看将 TypeProvider 服务添加到运行时:

TypeProvider provider = new TypeProvider(runtime);
provider.AddAssembly(assembly);
runtime.AddService(provider);

此外,请查看定义具有属于您的 DataObject 类型的 DependencyProperty 的根活动。将基于 XOML 的工作流设为该基本类型的根活动。然后,您应该能够将您的对象作为参数传递到基于 XOML 的工作流中,而不会出现任何问题。

于 2009-01-26T14:30:41.597 回答
1

我不太确定我完全理解你想要做什么,但你可能想看看一个自定义加载器:

http://msdn.microsoft.com/en-us/magazine/cc507645.aspx

http://www.masteringbiztalk.com/blogs/jon/CommentView,guid,ffd20921-fb8b-42a2-98d1-8c8e1582a3fa.aspx

于 2009-01-26T18:16:29.190 回答
0

我一直在看,TypeProvider但似乎我只能为活动添加新的位置。然而,运行时将继续自己实例化活动。我希望能够实例化它们,这样我就可以将一些参数传递给构造函数。

我几乎按照您描述的方式解决了 DataObject 问题。

于 2009-01-26T15:57:58.330 回答
0

我认为这WorkflowLoaderService是我正在寻找的课程。

那应该这样做。谢谢。

于 2009-01-26T18:58:58.997 回答