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

原文:http://msmvps.com/blogs/theproblemsolver/archive/2010/03/07/loading-xaml-workflows -in-wf4.aspx

时间: 2024-07-31 05:25:04

WF4.0:从XAML中加载工作流的相关文章

从资源中加载皮肤, 使用免费界面库 AppFace For VC 0.2 美化您的软件

由于单位上最近要开发一个内部使用的小型项目,我需要一个运行稳定的,能够将皮肤文件放到资源里的并且易于使用的界面开发包,当然,免费的最好.于是利用google一阵狂搜,嘿,真还找到了这样的一个开发库:AppFace For VC 0.2 . AppFace For VC 支持Win9X/NT/2K/XP,UNICODE/ANSI,能够对目标进程里的所有Widows标准控件,系统菜单,通用对话框等实现换肤,对非商业用途而言,它是完全免费的.关键的是AppFace的使用非常简单,很容易添加到已有的工程

Tiger系列一:从XML中加载属性

xml|加载 JDK1.5(代号Tiger)中更新了java.util.Properties类,提供了从XML文件中读写key-value对属性的简单方法:loadFromXML()和storeToXML() 1.基本加载属性的方法 l Sample属性文件:sample.properties foo=barfu=bazl 加载属性的Sample程序 import java.io.FileInputStream;import java.util.Properties; public class

Flash中加载影片时,Loading的位置对影片的影响

loading|加载 在论坛经常看到Loading加载方式的探讨,不过大多都是讨论用何种加载方法及代码,今天我想对Flash中加载影片时,Loading的位置对影片的影响.Flash Loading有多种制作及加载方式,本文研究的重点是讨论主影片中加载外部swf文件时Loading的位置对影片的影响.也就是将Loading写在主影片内部还是被加载影片中.     首先从缓存进行考虑,由于浏览器可以缓存Flash文件,因此Loading放在主影片内部,或者被加载影片中都没有影响,浏览器第一次会自动

从资源中加载皮肤

由于单位上最近要开发一个内部使用的小型项目,我需要一个运行稳定的,能够将皮肤文件放到资源里的并且易于使用的界面开发包,当然,免费的最好.于是利用google一阵狂搜,嘿,真还找到了这样的一个开发库:AppFace For VC 0.2. AppFace For VC 支持Win9X/NT/2K/XP,UNICODE/ANSI,能够对目标进程里的所有Widows标准控件,系统菜单,通用对话框等实现换肤,对非商业用途而言,它是完全免费的.关键的是AppFace的使用非常简单,很容易添加到已有的工程中

winform的webbrowser显示的网页中加载flash会导致内存飙升怎么解决

问题描述 winform的webbrowser显示的网页中加载flash会导致内存飙升怎么解决 5C winform的webbrowser显示的网页中加载flash会导致内存飙升,报错如下: 问题签名: 问题事件名称: APPCRASH 应用程序名: iexplore.exe 应用程序版本: 9.0.8112.16421 应用程序时间戳: 4d76255d 故障模块名称: Flash32_11_2_202_235.ocx 故障模块版本: 11.2.202.235 故障模块时间戳: 4f9af5a

仿微信中加载网页时带线行进度条的WebView的实现

finddreams:http://blog.csdn.net/finddreams/article/details/44172639  为了仿微信中加载网页时带进度条的WebView的实现,首先我们来看一下微信中的效果是什么样的:  明确需求之后,我们来开始动手做,首先我们来自定义一个带进度条的WebView,名字为ProgressWebView: <code class="hljs java has-numbering" style="display: block;

android-当从gallery中加载图像时,有空指针异常

问题描述 当从gallery中加载图像时,有空指针异常 我用下面的代码从 Gallery中获取图片.给出一个空指针异常并且系统崩溃.我在设备上测试了代码,只要我在gallery中选择一个图像时,系统就崩溃了.哪些地方出错了呢? AlertDialog.Builder builder = new AlertDialog.Builder(CreatePod.this); builder.setMessage("Select") .setCancelable(false).setPositi

webview-在WebView中加载HTML页面时怎么显示进度对话框

问题描述 在WebView中加载HTML页面时怎么显示进度对话框 在程序中使用webview视图显示html页面.我想在页面加载时显示一个进度对话框.但是我加载页面后,没有显示进度对话框.我使用AsyncTask,进度对话框还是没有显示.我使用的以下代码: class DownloadAysnc extends AsyncTask<String String Void> { ProgressDialog progressDialog; @Override protected void onPr

MFC在登陆页面中 加一个显示验证码的控件应该加哪个?图片从一个网页中加载出来的

问题描述 MFC在登陆页面中 加一个显示验证码的控件应该加哪个?图片从一个网页中加载出来的 http://202.200.144.63/(gac14yvwcsjrzj45cx1fq4ed)/CheckCode.aspx 我想把这网页里的图片显示在登陆界面作为验证码,请问我该在对话框中加什么控件,我用的是下边的方法 CHtmlView* pView= (CHtmlView*)m_wndSplit.GetPane(0,1); pView->Navigate("http://hao.201201