WF4.0:从XAML中加载工作流


大多数时候,我在Windows Workflow Foundation 4编译工作流时,它非常简单和方便,先设计工作流,然后编译,在运行时就会有一个用于创建和运行工作流的.NET类型。主要缺点是,这种方法不是很灵活,有时你希望能够在运行时改变您的工作流的定义或者将它存储在数据库中,重新编译是不可取的。

  幸运的是,我们还可以从XAML文件本身加载工作流和执行返回的工作流活动。使用ActivityXamlServices类能做到这些,它将让我们加载XAML文件并返回一个活动,确切地说,它返回一个封装好流程定义的DynamicActivity。

  最简单的方法就是传递一个文件名做参数调用Load() ,例如: 

  Activity workflow = ActivityXamlServices.Load("YourWorkflow.xaml");

  如果您使用本地程序集中的活动或其他类型,这是要失败的,但你可以用稍微详细方式去实现,例如:

var settings = new XamlXmlReaderSettings() { LocalAssembly = typeo(SendForManualApproval).Assembly };
var reader = new XamlXmlReader("YourWorkflow.xaml", settings);
Activity workflow = ActivityXamlServices.Load(reader);

  需要使用XamlXmlReaderSettings来说明XAML需要引用那些本地的程序集。

  备注:这篇文章的使用环境是.NET framework 4.0 RC 1



相关阅读:
HTML语言入门之二:字体
PHP4 与 MySQL 数据库操作函数详解
SQL Server复制功能要避开缺陷的干扰
Exchange Server 灾难恢复的黄金三招
Linux mysql命令安装允许远程连接的安装设置方法
javascript JSON操作入门实例
Windows2003域服务器在迁移过程中的设置
Php+SqlServer实现分页显示
asp.net 页面回跳实现代码
修改Access表结构
Fedora 9 texlive + vim-latex + kile安装配置
一些不标准的东西,不过还是有点用处
利用Microsoft.XMLHTTP控件发送COOKIE
css动态模糊效果
快速导航

Copyright © 2016 phpStudy |