到目前为止,我们已经使用.xaml(拖拽)和.cs代码方式创建过Workflow,这些代码文件会编译成程序集中的类,然后被工作流运行时调用运行。
相对于使用c#创建Workflow,.xaml文件有以下优势:
- 工作流设计器只能打开xaml文件
- xaml文件可以被动态加载和运行,而无需编译到程序集中
动态工作流Dynamic Workflow可以帮助我们在运行时决定加载和运行什么业务逻辑。
下面我们创建一个SayHello.xaml,然后在解决方案外对其进行修改,最后领用工作流宿主运行此工作流
1、创建SayHello.xaml
2、通知VS将SayHello.xaml视为一个发布内容而不仅仅是代码。
2.1 在解决方案中选中SayHello.xaml,右键---》属性
2.2 将【复制到输出目录】,从“不复制”改为“始终复制”
2.3 将【生成操作】,从“XamlAppDef”改为“内容
2.4 将【自定义工具】从“MSBuild:Compile”改为空
3. 在前面我们的Workflow都会编译成一个类class。为了能够让WorkflowInvoker从.xaml文件中引用(invoke)Workflow,我们必须使用ActivityXamlServices