Windows Workflow Foundation (wwf) 在宿主中使用参数与实例通信 --学习笔记(二)

 

很多时候,宿主要与工作流实例的内部对象进行通信,比如启动时,要设定某些属性的值,完成时要读取某些属性的值。 本例中是使用CreateWorkflow(工作流, 参数)的方式,在创建工作流时,对工作流的[年龄]属性赋值。当工作流实例无成后,在OnWorkflowCompleted事件的WorkflowCompletedEventArgs参数中将属性值读出。

1.宿主端写入参数和读出返回的参数

using (WorkflowRuntime runtime  =   new  WorkflowRuntime())
{
            AutoResetEvent waitHandle 
= new AutoResetEvent(false);
            runtime.WorkflowCompleted 
+= delegate(object sender, WorkflowCompletedEventArgs e) 
                waitHandle.Set();
                Console.WriteLine(e.OutputParameters[
"Result"].ToString());
            }
;
            runtime.WorkflowTerminated 
+= delegate(object sender, WorkflowTerminatedEventArgs e) { waitHandle.Set(); };
            runtime.WorkflowStarted 
+= delegate(object sender, WorkflowEventArgs e)
            
{
                Console.WriteLine(
"Workflow started:" + e.WorkflowInstance.InstanceId);
            }
;
            Dictionary
<stringobject> param = new Dictionary<stringobject>();
            param.Add(
"Name""adam");
            param.Add(
"Result""");
            WorkflowInstance instance;
            instance 
= runtime.CreateWorkflow(typeof(BugFlow), param);
            instance.Start();

}


2.工作流中读取参数

 

public   sealed   partial   class  BugFlow: SequentialWorkflowActivity
    
{
        
private string _name = "";
        
public string Name
        
{
            
get
            
{
                
return _name;
            }

            
set
            
{
                _name 
= value;
            }

        }


        
private string _resule = "";
        
public string Result
        
{
            
get return _resule; }
            
set { _resule = value; }
        }

        
public BugFlow()
        
{
            InitializeComponent();
        }


        
public BugAddedArgs _newBug = default(Chapter3.BugAddedArgs);

        
private void Code(object sender, EventArgs e)
        
{
            Console.WriteLine(
this.WorkflowInstanceId.ToString() + ":" + Name);
            Result 
= "Back";
        }

}

 

<script src="http://wz.csdn.net/javascripts/vote.js" type="text/javascript"></script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值