自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解Visual Studio 2010中WF 4.0的應用

開發(fā) 后端
在這里我們將討論的是Visual Studio 2010中Windows Workflow 4.0的應用,希望對大家有所幫助。

本文將為大家介紹的Windows Workflow 4.0在Visual Studio 2010中的相關應用,希望簡短的文章能為大家搞好Workflow 4.0開發(fā)有所幫助。

#T#

最近在虛擬機中安裝了Visual Studio 2010。界面是WPF的,CPU和內(nèi)存占用不是很夸張,打開一個很簡單的附帶的Lab Project, CPU使用率一般在20%一下,內(nèi)存使用不到800M。

言歸正傳,還是來介紹Windows Workflow 4.0。

與3.5相比工作流模型有了很大改變和不同。

我們知道3.5中工作流都是托管在WorkflowRuntime中的,通過WorkflowRuntime來創(chuàng)建、執(zhí)行工作流實例;在4.0中沒有WorkflowRuntime類,可以方便的直接創(chuàng)建WorkflowInstance實例和執(zhí)行工作流。Lab中代碼如下:

  1. WorkflowInstance myInstance = new WorkflowInstance(new SayHello(),  
  2.                  new SayHelloInArgs(userName));  
  3.              myInstance.OnCompleted = delegate(WorkflowCompletedEventArgs e)  
  4.              {  
  5.                  Console.WriteLine("*** OnCompleted delegate is running on thread {0} ***",  
  6.                      Thread.CurrentThread.ManagedThreadId);  
  7.                  SayHelloOutArgs outArgs = new SayHelloOutArgs(e.Outputs);  
  8.                  greeting = outArgs.Greeting;  
  9.                  syncEvent.Set();  
  10.              };  
  11.              myInstance.OnUnhandledException = delegate(WorkflowUnhandledExceptionEventArgs e)  
  12.              {  
  13.                  Console.WriteLine(e.UnhandledException.ToString());  
  14.                  return UnhandledExceptionAction.Terminate;  
  15.              };  
  16.              myInstance.OnAborted = delegate(WorkflowAbortedEventArgs e)  
  17.              {  
  18.                  Console.WriteLine(e.Reason);  
  19.                  syncEvent.Set();  
  20.              };  
  21.              myInstance.Run(); 

4.0中有一個WorkflowInvoker類,這個類也可以執(zhí)行工作流,只不過這個類是用來測試工作流的,這很大的改進了前一版本中工作流難以測試的問題。

  1. [TestMethod]  
  2.        public void ShouldReturnGreetingWithName()  
  3.        {  
  4.            Dictionary<stringobject> input = new Dictionary<stringobject>()  
  5.            {  
  6.                {"UserName""Test"}  
  7.            };  
  8.            IDictionary<stringobject> output;  
  9.            output = WorkflowInvoker.Invoke(new SayHello(), input);  
  10.            Assert.AreEqual("Hello, Test from Workflow 4", output["Greeting"]);  
  11.        } 

3.5中Activity是所有活動的基類,要實現(xiàn)自定義活動,只需重寫Activity 的Execute()方法;在4.0中所有的活動都是從抽象類WorkflowElement派生出來的,而且Visual Studio中默認自定義活動都是從CodeActivity或CodeActivity<T>繼承的,相似的是也需要重寫Execute()方法,從而實現(xiàn)自定義執(zhí)行邏輯。

  1. public class MyActivity1 : CodeActivity  
  2.   {  
  3.       protected override void Execute(CodeActivityContext context)  
  4.       {  
  5.           //你的實現(xiàn)代碼  
  6.       }  
  7.   } 

當然,你還是可以從Activity派生自定義活動,不過與3.5有很大不同。

  1. public class SayHelloInCode : Activity  
  2.    {  
  3.        protected override WorkflowElement CreateBody()  
  4.        {  
  5.            return new Sequence()  
  6.            {  
  7.                Activities =  
  8.                {  
  9.                    new WriteLine()  
  10.                    {  
  11.                        Text = "Hello Workflow 4 in code" 
  12.                    }  
  13.                }  
  14.            };  
  15.        }  
  16.    } 

4.0中新增加的工作流服務功能,可以直接把工作流發(fā)布為WCF服務,當然工作流也必須設計為具有WCF應答功能才行。4.0提供4個與WCF相關的活動:Receive、ReceiveReply、Send、SendReply,通過這些活動可以可視化定義WCF的服務操作。

4.0中實現(xiàn)了工作流設計器的基本模型,可以很容易的實現(xiàn)自定義設計器。

責任編輯:彭凡 來源: 百度空間
相關推薦

2010-02-05 09:06:17

Visual Stud

2009-11-24 09:00:02

Visual Stud

2010-04-01 15:10:06

Visual Stud

2010-02-23 09:02:00

Visual Stud

2010-12-16 10:00:20

QtVisual Stud

2010-03-19 16:43:37

Visual Stud

2010-02-01 09:19:32

WF 4.0

2009-11-18 09:14:49

Visual Stud

2010-01-22 09:51:31

Visual Stud

2009-12-02 09:43:38

Visual Stud

2009-07-02 10:07:24

C# 4.0的動態(tài)類型Visual Stud

2010-11-16 09:23:13

敏捷開發(fā)Visual Stud

2010-03-11 14:37:47

Visual StudScrum

2010-07-27 09:40:01

敏捷Visual Stud

2010-07-29 09:41:23

Visual Stud

2009-09-03 09:10:24

Visual Stud

2010-04-01 14:51:52

Visual Stud

2009-12-15 09:36:32

Visual Stud

2010-07-20 08:43:00

Visual Stud

2010-03-19 13:17:26

Parallel
點贊
收藏

51CTO技術棧公眾號