VS2010 学习笔记 WF4 (4) 使用xaml实现动态工作流

到目前为止,我们知道可以使用.xaml文件或者使用.cs文件来实现工作流,这些文件将被编译进程序集中。

 

使用.xaml文件比使用.cs文件有明显的好处:

  • 工作流设计器只识别.xaml文件,使用.cs文件创建的工作流并没有可视化的设计器支持。
  • .xaml可以在运行时动态加载,无须编译进程序集

动态工作流提供了在运行时才生成业务逻辑,或在运行时才决定加载和运行哪个业务逻辑的可能性。

 

任务1 – 修改 SayHello.xaml 文件属性

 

 

修改 SayHello.xaml文件的属性,使HellowWorkflow程序在运行时才加载和运行SayHello.xaml文件。我们可以手工修改SayHello.xaml文件的内容,并运行程序看看修改后的输出消息是否有所变化。

 

  • 首先修改SayHello.xaml 文件的属性,使之被VS识别为部署内容,而不是内部代码:
    • 在Solution Explorer选择SayHello.xaml
    • 在属性窗口,修改Build Action为Content
    • 修改Copy To Output Directory为Copy Always

任务 2 – 修改 Main() 方法加载 SayHello.xaml 文件

 

 

SayHello.xaml在修改属性前,在编译的时候是作为类型编译到程序集。要从.xaml文件中调用工作流,要使用ActivityXamlServices 类来加载.xaml文件到内存并创建activity实例,便于WorkflowInvoker 能够调用。

 

  • 在program.cs文件加入System.Activities.XamlIntegration命名空间:

using System.Activities.XamlIntegration;

  • 修改Main()方法,使用ActivityXamlServices 来动态调用.xaml文件。同时加上Console.ReadKey 以便控制台窗口保持显示状态:

static void Main(string[] args)
{
    WorkflowInvoker.Invoke(ActivityXamlServices.Load("SayHello.xaml"));
    Console.ReadKey(false);
}


验证 - 运行并修改SayHello.xaml文件内容


通过修改发布到bin/Debug目录的SayHello.xaml文件内容,验证可在运行时动态加载工作流。

 

  • 按CTRL+F5运行项目,程序在控制台输出Hello Workflow 4
  • 通过Windows的资源管理器,定位到项目的Bin/Debug 目录的SayHello.xaml
  • 右键点击文件,并选择Edit
  • 在记事本中,修改WriteLine activity的Text 属性为Hello Workflow 4 XAML
  • 通过Windows资源管理器,运行HelloWorkflow.exe ,并观察修改后的输出结果是否Hello Workflow 4 from XAML
  • 在VS中,重置SayHello.xaml文件属性:
    • Build Action: XamlAppDef
    • Copy to Output Directory: Do not copy
    • Custom Tool: MSBuild:Compile
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值