使用WorkflowApplication 创建工作流
class Program
{
static void Main(string[] args)
{
//WorkflowInvoker.Invoke(new Workflow1());
WorkflowApplication instance =new WorkflowApplication(new Workflow1());
//设置实例运行完毕后执行的方法
instance.Completed=new Action<WorkflowApplicationCompletedEventArgs>(workflowCompleted);
//输出实例ID
Console.WriteLine("" + instance.Id);
//启动实例
instance.Run();
Console.ReadKey();
}
static void workflowCompleted(WorkflowApplicationCompletedEventArgs e)
{
//输出当前状态
Console.WriteLine("状态:" + e.CompletionState);
//输出实例ID
Console.WriteLine("实例编号:" + e.InstanceId);
}
}
[In参数]使用说明
1. 可以用VS设计器在xaml中定义[In参数]
2. 在xaml中定义的[In参数],可以在该xaml中被其他Activity用表达式绑定
3. 可以用code方式在code Activity中定义[In参数]
4. 可以在属性框中, 将code Activity中定义的[In参数]绑定到参数或变量
可以用"表达式"方式赋值
5. 运行时,可以用启动参数的方式对[In参数]赋值(xaml与code两种方式都可以)
6. [In参数]不能在实例的[OnCompleted]事件中用[WorkflowApplicationCompletedEventArgs.Outputs]得到
7. 可以使用[Assign] 为 [In参数]赋值
InArguments<T>参数的使用
System.Collections.Generic.Dictionary<string, object> dic = new System.Collections.Generic.Dictionary<string, object>();
dic.Add("a1", 123.123);
dic.Add("a2", 234.234);
WorkflowApplication instance =new WorkflowApplication(new Workflow1(),dic);
//启动实例
instance.Run();
Console.ReadKey();
[Out参数]使用说明
1. 可以用VS设计器在xaml中定义[Out参数]
2. 在xaml中定义的[Out参数],可以在该xaml中被其他Activity用表达式绑定
3. 可以用code方式在code Activity中定义[Out参数]
4. 可以在属性框中, 将code Activity中定义的[Out参数]绑定到参数或变量
不能直接对[Out参数]赋值
5. 运行时,不能用启动参数的方式对[Out参数]赋值(xaml与code两种方式都不可以)
6. [Out参数]可在实例的[OnCompleted]事件中用[WorkflowApplicationCompletedEventArgs.Outputs]得到
7. 可以使用[Assign] 为 [Out参数]赋值
添加CodeActivity(活动)public sealed class outArgumentsActivity : CodeActivity
{
// 定义一个字符串类型的活动输入参数
public OutArgument<string> myOut { get; set; } //此处要改为OutArgument,默认为InArgument
// 如果活动返回值,则从 CodeActivity<TResult>
// 派生并从 Execute 方法返回该值。
protected override void Execute(CodeActivityContext context)
{
// 获取 Text 输入参数的运行时值
string s1 = context.GetValue(this.myOut);
context.SetValue(this.myOut, "Hello" + s1);
string s2 = context.GetValue(this.myOut);
context.SetValue(this.myOut, s2 + " World");
}
}
[In/Out参数]使用说明
1. 可以用VS设计器在xaml中定义[In/Out参数]
2. 在xaml中定义的[In/Out参数],可以在该xaml中被其他Activity用表达式绑定
3. 可以用code方式在code Activity中定义[In/Out参数]
4. 可以在属性框中, 将code Activity中定义的[In/Out参数]绑定到参数或变量
不能直接对[In/Out参数]赋值
5. 运行时, 可以用启动参数的方式对[In/Out参数]赋值(xaml与code两种方式都可以)
6. [In/Out参数]可在实例的[OnCompleted]事件中用[WorkflowApplicationCompletedEventArgs.Outputs]得到
7. 可以使用[Assign] 为 [In/Out参数]赋值