WF4.0 入门系列(三) Dynamic Workflows with XAML
来源:互联网 发布:彭博国外海关数据 编辑:程序博客网 时间:2024/04/28 01:53
到目前为止,我们已经使用.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来将.xaml加载到内存并创建一个WorkflowInvoker可以引用活动实例。注意,当此Workflow被引用时,所有.xaml文件中引用的程序集都是可以得到的。
3.1 在Program.cs添加引用:
using System.Activities.XamlIntegration;
3.2 修改main方法
static void Main(string[] args) { Activity sayHello = ActivityXamlServices.Load("SayHello.xaml"); WorkflowInvoker.Invoke(sayHello); Console.ReadKey(false); }
4. 修改已经发布的SayHello.xaml文件
4.1 重新生成解决方案,你会发现SayHello.xaml文件被发布到debug文件夹下
4.2 以文本文件方式打开该文件
4.3 修改输出的字符串内容为“Hello Workflow 4 XAML”
4.4 运行HelloWorkflow.exe可执行文件
5. 最后请将SayHello.xaml文件的属性值以及Program main方法的代码该回到最初状态 ,以便我们进行下一练习。
系列文章:
一 Hello Workflow4
二 The CodeActivity
三 Dynamic Workflows with XAML
四 Testing Workflows
五 WorkflowApplication
六 If/Else Logic
- WF4.0 入门系列(三) Dynamic Workflows with XAML
- WF4.0 入门系列(四)Testing Workflows
- WF4.0 入门系列(五)WorkflowApplication
- WF4.0 入门系列(一)Hello Workflow4
- WF4.0 入门系列(二) The CodeActivity
- WF4.0 入门系列(六)If/Else Logic
- WF4.0 入门系列(七)Error Handling
- WF4.0 学习系列
- WF4.0实战(三):WCF服务
- WF4.0 入门系列(八)Custom Activities and Designers 之一
- WF4.0 入门系列(八)Custom Activities and Designers 之二
- 基于WF4.0流程平台开发过程中的知识积累(三)书签实现子流程
- Dynamics CRM 通过PowerShell启用AllowDeclarativeWorkflows即自定义XAML WorkFlows
- (转)WF4.0——开篇
- 小麦子-WPF学习系列2:XAML入门
- VS2010 学习笔记 WF4 (4) 使用xaml实现动态工作流
- WPF入门(三)-使用XAML创建玻璃按钮
- [WF4.0 实战] WF4.0 Receive && Send
- 应该知道做些什么了
- Hibernate配置EhCache缓存之annotation注解
- ubuntu目录是中文名的解决方案
- Xcode 官方全版本下载 从xcode3.2到xcode4.5.2
- Hibernate与各种数据库连接的配置
- WF4.0 入门系列(三) Dynamic Workflows with XAML
- 问:外部链接js,页面显示乱码
- UIView CALayer 属性不显示错误 Property cannot be found in forward class object 'CALayer
- ubuntu 安装音乐播放器
- java_Socket通信_聊天程序
- poj 2823 Sliding Window
- strus2中输入校验的流程
- UIView和CALayer的区别
- HDU 2055 An easy problem