《WF编程》系列之46 第七章 事件驱动工作流
2010-10-01 08:20:51 来源:WEB开发网这些事件的事件参数需要进程中的服务传递工作流可以使用的信息。例如,一条可用的信息就是一个携带了bug所有特性(title、description、assignment)的Bug对象。
[Serializable]
public class BugStateChangedEventArgs : ExternalDataEventArgs
{
public BugStateChangedEventArgs(Guid instanceID, Bug bug):base(instanceID)
{
_bug = bug;
WaitForIdle = true;
}
private Bug _bug;
public Bug Bug
{
get { return _bug; }
set { _bug = value; }
}
}
实现了IBugService接口的服务将会在bug的状态发生改变时触发事件。例如,服务可能触发来自Smart Client应用程序的事件以响应用户在UI中操作的bug。有选择地,服务可能在一个web服务的调用中接收到更新过的bug信息,并触发来自ASP.NET的web服务的事件。核心问题是工作流不关心为什么触发,也不关心导致事件的结果。工作流只关心有事件发生了。
我们将使用bug服务接口的本地实现,并提供触发事件的简单方法。在本章的后面,我们将在控制台模式的程序中使用这个服务以触发事件到工作流。
public class BugService : IBugService
{
public event EventHandler<BugStateChangedEventArgs> BugOpened;
public void OpenBug(Guid id, Bug bug)
{
if (BugOpened != null)
{
BugOpened(null,
new BugStateChangedEventArgs(id, bug));
}
}
//and so on …
}
- ››WF 4.0 beta1中的跟踪机制
- ››WF 4.0的建模风格:顺序和Flowchart
- ››WF4.0 Beta1之旅(5):规则引擎的变化
- ››WF 4.0 beta1活动概览(1):Procedural
- ››WF4.0 Beta1之旅(4):Bookmark的使用
- ››WF4.0 Beta1之旅:基本介绍
- ››WF4.0 Beta1之旅(2):异常处理
- ››WF4.0 Beta1之旅(3):全新的FlowChart
- ››WF 应用场景指南: SharePoint 与工作流(上)
- ››WF 应用场景指南: 展现流(Presentation Flow)
- ››WF单元测试系列1:测试基本的Activity
- ››WF单元测试系列2:简单测试Activity的行为
更多精彩
赞助商链接