- 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" });
- AutoCAD 2022快速入門、進階與精通
- SolidWorks 2021中文版機械設計從入門到精通
- Spring Security 3
- Puppet 2.7 Cookbook
- Drools JBoss Rules 5.0 Developer's Guide
- Photoshop影視動漫角色繪制技法精解
- 中文版Photoshop CS6全能一本通·全彩版
- Django 1.0 Template Development
- ANSYS Workbench中文版超級學習手冊
- JBoss RichFaces 3.3
- MATLAB R2024a完全自學一本通
- Revit技巧精選應用教程
- Flash CS5動畫設計教程
- Photoshop+CorelDRAW平面設計實例教程(第3版)
- Web Host Manager Administration Guide