1

我需要将工作流添加到现有解决方案中,该解决方案已经包含一个类库和一个网站。如果我将工作流添加到类库中,它们在逻辑上适合,我没有设计器支持。如果我在单独的项目中创建它们,我倾向于具有循环依赖关系,因为我的域对象运行工作流,而工作流需要我的域对象。

避免此问题的首选架构是什么?

4

2 回答 2

2

如果我理解您的问题,如果您的类库中有对 WF 的设计器支持,那么您可以在那里添加工作流定义吗?

为此,您可以编辑相应的类库项目文件(C# 为 *.csproj)并添加以下行:

在第一个 PropertyGroup 中:

<ProjectTypeGuids>{14822709-B5A1-4724-98CA-57A101D1B079};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

在文件的底部:

对于 VS2008:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\Windows Workflow Foundation\v3.5\Workflow.Targets" />

对于 VS2005:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\Windows Workflow Foundation\v3.0\Workflow.Targets" />

在 IDE 中重新加载项目后,您应该获得对 WF 的支持。

但正如 gbanfill 所提到的,您也可以以不同的方式组织您的程序集。

于 2008-12-17T15:49:26.290 回答
0

我解决该问题的方法是将域对象拆分为 POCO 程序集(称为域)和对 POCO 对象执行操作的方法程序集(称为操作)。这意味着所有其他程序集都可以包含域对象并以这种方式在它们之间传递数据。所以我的解决方案看起来像(任何程序集都可以包含列表中较低的程序集)

  • 网站
  • 工作流程
  • 操作
  • 领域
于 2008-12-10T17:44:16.013 回答