EntLib.com 专业电子商务平台

基于Microsoft .Net Framework / ASP.Net / C# / AJAX 平台构建的标准电子商务系统
随笔 - 99, 评论 - 74, 引用 - 0

简要分析WF 状态机工作流的部分代码

简要分析WF 状态机工作流的部分代码
 
这里简要分析WF 状态机工作流的部分代码。
首先,看看下面的代码:
    public class clsOrder : IOrder
    {
        #region IOrder Members
 
        public event EventHandler<ExternalDataEventArgs> NotPaid;
        public event EventHandler<ExternalDataEventArgs> InStock;
        public event EventHandler<ExternalDataEventArgs> PaymentMade;
        public event EventHandler<ExternalDataEventArgs> Dispatch;
        public event EventHandler<ExternalDataEventArgs> AddressNotProper;
 
        public event EventHandler<ExternalDataEventArgs> AddressCorrected;
 
        public event EventHandler<ExternalDataEventArgs> ProductStocked;
 
        #endregion
        public void CallNotPaid(ExternalDataEventArgs args)
        {
            // 触发工作流中相应的活动
            NotPaid(null, args);
            Console.WriteLine("This order is not paid");
        }
 
其中 event EventHandler<ExternalDataEventArgs> 代码相当于C# 1.0 中的语法:
delegate void ExternalDataEventHandler(object sender, ExternalDataEventArgs e);
event ExternalDataEventHandler OnInitStart;
事件只有两个参数,一个是sender谁触发的,一个是相关的参数。
 
event EventHandler <ExternalDataEventArgs>定义的是一个事件。 其中EventHandler <ExternalDataEventArgs>是一个delegate的简化定义。
 
public event EventHandler<ExternalDataEventArgs> NotPaid;
这里定义了一个EventHandler 类型的事件 NotPaid。
 
 
其中,NotPaid(null, args);方法触发工作流中相应的活动,这里是触发NotPaid事件,进一步转换State的状态。
 

 

 打印 | 发表评论 | posted on 2009年3月21日 23:58 | 目录 [ Workflow (WF) ]

评 论

欢迎发表评论。

发表评论

标题  
姓名  
Email
主页
评论内容   
Please add 4 and 6 and type the answer here: