WEB开发网
开发学院软件开发C语言 《WF编程》系列之47 第八章 工作流中的通信 阅读

《WF编程》系列之47 第八章 工作流中的通信

 2010-10-01 08:20:45 来源:WEB开发网   
核心提示: 我们在第3章的简单范例只具有一个等待事件的活动,运行时不需要任何额外的信息发送这些有效内容,《WF编程》系列之47 第八章 工作流中的通信(2),并不是所有的工作流都能这样简单,我们需要学会,这将要求小组中的成员对即将到来的一个bug进行投票,投票yes表示小组成员接受系统中的这个bug,一旦

我们在第3章的简单范例只具有一个等待事件的活动。运行时不需要任何额外的信息发送这些有效内容。并不是所有的工作流都能这样简单。我们需要学会,一旦存在等待一个事件的多个活动,那么我们该如何把这些消息联系起来

相关性参数

WF使用相关性记号来确定在工作流中的特定活动和宿主中的本地通信服务之间的会话。通信接口默认是不具有相关性的,并且在工作流具有多个活动并发等待即将到来的事件时,我们只需要确定这些相关性记号就可以了。让我们看一个例子:

想象一下为我们的bug跟踪的应用程序开发一个工作流,这将要求小组中的成员对即将到来的一个bug进行投票。投票yes表示小组成员接受系统中的这个bug。投票no表示小组成员想要关闭这个bug。我们可能会像下面这样设计接口和事件参数类:

[ExternalDataExchange]
public interface IBugVotingService
{
  void RequestVote(string userName);
  event EventHandler<VoteCompletedEventArgs> VoteCompleted;
}

[Serializable]
public class VoteCompletedEventArgs : ExternalDataEventArgs
{
  public VoteCompletedEventArgs(Guid instanceID, string userName, bool isYesVote)
    : base(instanceID)
  {
    _userName = userName;
    _isYesVote = isYesVote;
  }

  private string _userName;
  public string UserName
  {
    get { return _userName; }
    set { _userName = value; }
  }

  private bool _isYesVote;
  public bool IsYesVote
  {
    get { return _isYesVote; }
    set { _isYesVote = value; }
  }
}

上一页  1 2 3 4 5 6 7  下一页

Tags:WF 编程 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接