我需要将工作流添加到现有解决方案中,该解决方案已包含类库和网站。如果我将工作流添加到类库中,它们在逻辑上适合,我没有设计器支持。如果我在一个单独的项目中创建它们,我倾向于循环依赖,因为我的域对象运行工作流,工作流需要我的域对象。
避免此问题的首选架构是什么?
答案 0 :(得分: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所提到的,你也可以用不同的方式组织你的装配。
答案 1 :(得分:0)
我解决这个问题的方法是将域对象拆分为POCO程序集(称为Domain)和一组在POCO对象上执行操作的方法(称为操作)。这意味着所有的otehr组件都可以包含域对象,并以这种方式在它们之间传递数据。所以我的解决方案看起来像(任何程序集都可以包含列表中较低的程序集)