在代码中为IN,OUT参数赋值各有两种方式
public System.Activities.InArgument<string> myIn { get; set; } protected override void Execute(CodeActivityContext context) { string s1 = context.GetValue(this.myIn); string s2 = myIn.Get(context); System.Console.WriteLine(s1); System.Console.WriteLine(s2); }
public System.Activities.OutArgument<string> myOut { set; get; } protected override void Execute(CodeActivityContext context) { //1 string s1 = myOut.Get(context); myOut.Set(context, "wxd" + s1); //2 string s2 = context.GetValue(myOut); context.SetValue(myOut, "lzm" + s2); }
参数的传入和接收方式
/// <summary> /// 单击启动工作流 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button1_Click(object sender, EventArgs e) { Activity activity = ActivityXamlServices. Load(@"E:/Project/WorkflowApplication/WebApplication/Activity/Workflow1.xaml"); Dictionary<string, object> dic = new Dictionary<string, object>(); dic.Add("left", 1); dic.Add("right", 2); WorkflowApplication app = new WorkflowApplication(activity, dic); app.Completed = workflowCompleted; app.Run(); } /// <summary> /// 工作流结束时触发的事件,已委托给工作流 /// </summary> /// <param name="e"></param> void workflowCompleted(WorkflowApplicationCompletedEventArgs e) {
//接收参数 IDictionary<string, object> dic = e.Outputs; Response.Write(dic["Rst"].ToString()); }