- Microsoft Windows Workflow Foundation 4.0 Cookbook
- Andrew Zhu
- 300字
- 2021-04-13 17:00:35
In this task, we will create a WF program using InOutArgument
. This type of argument is used to receive values and is also used to pass values out to the caller (WF host).
- Create a workflow project:
Create a new Workflow Console Application under the
Chapter01
solution and name the project asUseInOutArgument
. - Author a workflow:
Create an
InOutArgument
type argument:InOutMessage
. Author a WF program as shown in the following screenshot. In the Assign activity textbox, type InOutMessage = "Now, I am an OutMessage". - Write code to host the workflow:
Open the
Program.cs
file and alter the code as shown:using System; using System.Activities; using System.Activities.Statements; using System.Collections.Generic; namespace UseInOutArgument{ class Program{ static void Main(string[] args){ IDictionary<string, object> input = new Dictionary<string, object>() { {"InOutMessage","Now, I am InMessage"} }; IDictionary<string,object> output= WorkflowInvoker.Invoke(new Workflow1(),input); Console.WriteLine(output["InOutMessage"]); } } }
- Run it:
Set
UseInOutArgument
asStartup
project. Press Ctrl+F5 to build and run the workflow without debugging. The application should run in a console window and print the message as shown in the following screenshot:

The following code block initializes the InArgument
value:
IDictionary<string, object> input = new Dictionary<string, object>() { {"InOutMessage","Now, I am InMessage"} };
This statement will run the workflow program with the input dictionary.
IDictionary<string,object> output= WorkflowInvoker.Invoke(new Workflow1(),input);
The string Now, I am InMessage is printed by the workflow. The string Now, I am an OutMessage is a message altered in the workflow and passed to the host and then printed by the host program.
We cannot assign a string to InOutArgument
directly, and the following style of parameter initialization is not allowed:
IDictionary<string, object> output = WorkflowInvoker.Invoke(new Workflow1() { InOutMessage="Now,I am InMessage" });
- 軟件定義數據中心:技術與實踐
- JasperReports for Java Developers
- UG NX 8.0基礎與實例教程
- SolidWorks 2008機械設計一冊通
- Google Web Toolkit 2 Application Development Cookbook
- SPSS進階分析與實務
- Getting Started With Oracle SOA Suite 11g R1 – A Hands/On Tutorial
- Photoshop+CorelDRAW平面設計實例教程(第4版)
- AI繪畫實戰:Midjourney從新手到高手
- WordPress Theme Design
- SolidWorks 2019快速自學寶典
- 中文版Photoshop CS6從新手到高手(超值版)
- Maya 2020 超級學習手冊
- AI繪畫與攝影實戰108招:ChatGPT+Midjourney+文心一格
- Apache CXF Web Service Development