本文将为大家介绍的Windows Workflow 4.0在Visual Studio 2010中的相关应用,希望简短的文章能为大家搞好Workflow 4.0开发有所帮助。
为天峨等地区用户提供了全套网页设计制作服务,及天峨网站建设行业解决方案。主营业务为成都网站设计、做网站、天峨网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
#T#
最近在虚拟机中安装了Visual Studio 2010。界面是WPF的,CPU和内存占用不是很夸张,打开一个很简单的附带的Lab Project, CPU使用率一般在20%一下,内存使用不到800M。
言归正传,还是来介绍Windows Workflow 4.0。
与3.5相比工作流模型有了很大改变和不同。
我们知道3.5中工作流都是托管在WorkflowRuntime中的,通过WorkflowRuntime来创建、执行工作流实例;在4.0中没有WorkflowRuntime类,可以方便的直接创建WorkflowInstance实例和执行工作流。Lab中代码如下:
- WorkflowInstance myInstance = new WorkflowInstance(new SayHello(),
- new SayHelloInArgs(userName));
- myInstance.OnCompleted = delegate(WorkflowCompletedEventArgs e)
- {
- Console.WriteLine("*** OnCompleted delegate is running on thread {0} ***",
- Thread.CurrentThread.ManagedThreadId);
- SayHelloOutArgs outArgs = new SayHelloOutArgs(e.Outputs);
- greeting = outArgs.Greeting;
- syncEvent.Set();
- };
- myInstance.OnUnhandledException = delegate(WorkflowUnhandledExceptionEventArgs e)
- {
- Console.WriteLine(e.UnhandledException.ToString());
- return UnhandledExceptionAction.Terminate;
- };
- myInstance.OnAborted = delegate(WorkflowAbortedEventArgs e)
- {
- Console.WriteLine(e.Reason);
- syncEvent.Set();
- };
- myInstance.Run();
4.0中有一个WorkflowInvoker类,这个类也可以执行工作流,只不过这个类是用来测试工作流的,这很大的改进了前一版本中工作流难以测试的问题。
- [TestMethod]
- public void ShouldReturnGreetingWithName()
- {
- Dictionary
input = new Dictionary () - {
- {"UserName", "Test"}
- };
- IDictionary
output; - output = WorkflowInvoker.Invoke(new SayHello(), input);
- Assert.AreEqual("Hello, Test from Workflow 4", output["Greeting"]);
- }
3.5中Activity是所有活动的基类,要实现自定义活动,只需重写Activity 的Execute()方法;在4.0中所有的活动都是从抽象类WorkflowElement派生出来的,而且Visual Studio中默认自定义活动都是从CodeActivity或CodeActivity
- public class MyActivity1 : CodeActivity
- {
- protected override void Execute(CodeActivityContext context)
- {
- //你的实现代码
- }
- }
当然,你还是可以从Activity派生自定义活动,不过与3.5有很大不同。
- public class SayHelloInCode : Activity
- {
- protected override WorkflowElement CreateBody()
- {
- return new Sequence()
- {
- Activities =
- {
- new WriteLine()
- {
- Text = "Hello Workflow 4 in code"
- }
- }
- };
- }
- }
4.0中新增加的工作流服务功能,可以直接把工作流发布为WCF服务,当然工作流也必须设计为具有WCF应答功能才行。4.0提供4个与WCF相关的活动:Receive、ReceiveReply、Send、SendReply,通过这些活动可以可视化定义WCF的服务操作。
4.0中实现了工作流设计器的基本模型,可以很容易的实现自定义设计器。
分享文章:详解VisualStudio2010中WF4.0的应用
分享地址:http://www.shufengxianlan.com/qtweb/news34/279284.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联