收藏 分销(赏)

从xoml加载工作流.doc

上传人:pc****0 文档编号:9011015 上传时间:2025-03-11 格式:DOC 页数:5 大小:135KB
下载 相关 举报
从xoml加载工作流.doc_第1页
第1页 / 共5页
从xoml加载工作流.doc_第2页
第2页 / 共5页
点击查看更多>>
资源描述
1 说明 以下方法不要求宿主引用类,但是,如果xoml中使用了自定义的Activity,要将自定义的Activity所在的dll文件复制到宿主程序目录中 可以将其转换成另一种xoml文件,具体见[编译成DLL的工作流的XOML文件] 2 VS2005设计器生成的xoml文件 <SequentialWorkflowActivity x:Class="wxwinter.wf.TestWorkflow.wxdTestWorkflow3" x:Name="wxdTestWorkflow3" xmlns:ns0="clr-namespace:wxwinter.wf.TestWorkflow" xmlns:x=" xmlns="   <DelayActivity TimeoutDuration="00:00:00" x:Name="delayActivity1" />   <ns0:wxdTestOurValue Wxwinter="空" x:Name="wxdTestOurValue1" />   </SequentialWorkflowActivity> 注意 该文件不能用于直接创选实例,也不能用于动态编译 如果要使用,可参考下面的方法要求修改 x:Class 与 xmlns:ns0="clr-namespace 部分 3 从xoml文件创建工作流实例 只有加载由[从工作流类得到xoml字串]格式的xoml文件,即 没有x:Class部分 要有xmlns:ns0="clr-namespace部分有Assembly与Version与Culture与PublicKeyToken信息 <SequentialWorkflowActivity x:Name="Workflow1" xmlns:ns0="clr-namespace:WorkflowLibrary1;Assembly=WorkflowLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" xmlns:x=" xmlns=" <ns0:Activity1 x:Name="activity11" /> </SequentialWorkflowActivity> Assembly=WorkflowLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" 可以使用 System.Reflection.Assembly a = System.Reflection.Assembly.LoadFrom("WorkflowLibrary1.dll"); System.Console.WriteLine(a.FullName); 得到 方法 /// <summary> /// 从xoml文件创建工作流实例 /// </summary> /// <param name="xomlfile">xomlfile文件</param> /// <returns>实例guid或错误信息</returns> public string CreateWorkflowFromXomlFile(string xomlfile) { try { System.Workflow.Runtime.WorkflowInstance instance; XmlReader xr = XmlReader.Create(xomlfile); instance = WFEngine.CreateWorkflow(xr); return instance.InstanceId.ToString(); } catch (System.Workflow.ComponentModel.Compiler.WorkflowValidationFailedException ex) { return "err:" + ex.Message; } } 4 从xoml字串创建工作流实例 只有加载由[从工作流类得到xoml字串]格式的xoml文件,即 没有x:Class部分 要有xmlns:ns0="clr-namespace部分有Assembly与Version与Culture与PublicKeyToken信息 <SequentialWorkflowActivity x:Name="Workflow1" xmlns:ns0="clr-namespace:WorkflowLibrary1;Assembly=WorkflowLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" xmlns:x=" xmlns=" <ns0:Activity1 x:Name="activity11" /> </SequentialWorkflowActivity> Assembly=WorkflowLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" 可以使用 System.Reflection.Assembly a = System.Reflection.Assembly.LoadFrom("WorkflowLibrary1.dll"); System.Console.WriteLine(a.FullName); 得到 方法 /// <summary> /// 从xoml字串创建工作流实例 /// </summary> /// <param name="xomlstring">xoml字符串</param> /// <returns>实例guid或错误信息</returns> public string CreateWorkflowFormXomlString(string xomlstring) { try { System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding(); byte[] b = utf8.GetBytes(xomlstring); System.IO.MemoryStream ms = new System.IO.MemoryStream(b); XmlReader xr = XmlReader.Create(ms); System.Workflow.Runtime.WorkflowInstance instance; instance = WFEngine.CreateWorkflow(xr); return instance.InstanceId.ToString(); } catch (System.Workflow.ComponentModel.Compiler.WorkflowValidationFailedException ex) { return "err:" + ex.Message; } } 5
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服