溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Visual Studio 2010中WF 4.0怎么用

發(fā)布時間:2021-12-27 09:58:15 來源:億速云 閱讀:155 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關(guān)Visual Studio 2010中WF 4.0怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

最近在虛擬機中安裝了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中代碼如下:

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類,這個類也可以執(zhí)行工作流,只不過這個類是用來測試工作流的,這很大的改進了前一版本中工作流難以測試的問題。

[TestMethod]         public void ShouldReturnGreetingWithName()         {             Dictionary<string, object> input = new Dictionary<string, object>()             {                 {"UserName", "Test"}             };             IDictionary<string, object> output;             output = WorkflowInvoker.Invoke(new SayHello(), input);             Assert.AreEqual("Hello, Test from Workflow 4", output["Greeting"]);         }

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

public class MyActivity1 : CodeActivity    {        protected override void Execute(CodeActivityContext context)        {            //你的實現(xiàn)代碼        }    }

當然,你還是可以從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中新增加的工作流服務(wù)功能,可以直接把工作流發(fā)布為WCF服務(wù),當然工作流也必須設(shè)計為具有WCF應(yīng)答功能才行。4.0提供4個與WCF相關(guān)的活動:Receive、ReceiveReply、Send、SendReply,通過這些活動可以可視化定義WCF的服務(wù)操作。

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

關(guān)于“Visual Studio 2010中WF 4.0怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI