- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows工作流设计模式
基础内容
Windows 工作流设计模式
Matthew Milner
代码下载 的 MSDN 代码库中可用 浏览在线代码
?目录
执行工作的 N 数据项 侦听的超时 变体:状态机 散点图收集 使用多个操作启动工作流服务
设计模式提供常用的、可重复的方法来完成软件开发任务,各种不同的模式将分别说明如何在代码中实现特定目标。 开发人员开始使用 Windows Workflow Foundation (WF) 时,他们通常会问的相关问题是:如何使用此技术实现常见任务。 本月我将介绍几个在 WF 中使用的设计模式。
执行工作的 N 数据项
通常,工作流都不驱动完全由逻辑但还数据,(如组织中的用户的列表或订单,列表的一组工作流中的步骤需要执行一次的每个项目的。 尽管可能不是模式本身,该简单的、 可重用的位逻辑的是其他模式我在本文中讨论的一个重要组件。 此方案的关键使用复制活动循环访问的数据的集合和集合中执行相同的每一项活动。
复制活动提供驱动器迭代事件初始化每个数据项和条件,您可以打破执行子活动的数据项目的集合属性。 实质上是,复制活动提供 ForEach 结合 DoWhile 样式条件执行语句的语义。
渚嬪的方式 指定与属性类型列表 字符串 的工作流包含员工的电子邮件地址,可以循环访问列表和每个员工,如图 1 的中所示发送邮件。
图 1 复制与活动 SendMail
鍦 ㄨ 繖绉嶆儏鍐典笅,复制活动必须 InitialChildData 属性绑定到一个集合实现 IEnumerable 接口包含用于电子邮件地址。 这些地址用于设置为每个迭代的收件人的地址。 通过处理 ChildInitialized 事件,您访问数据的项和执行动态活动实例。 图 2 显示如何从集合中的电子邮件地址传递给事件可用于设置 RecipientAddress 属性相关的电子邮件活动实例。
?正在初始化子活动的图 2
复制代码
public Liststring emails = new Liststring
{matt@,msdnmag@};
private void InitChildSendMail(object sender, ReplicatorChildEventArgs e)
{
SendMailActivity sendMail = e.Activity as SendMailActivity;
sendMail.RecipientAddress = e.InstanceData.ToString();
}
按顺序或者以并行方式,可以执行复制活动。 顺序方式复制等待每个迭代完成后才能开始新的迭代。 并行方式所有活动是初始化一次计划和执行与非常类似于并行活动,但每个分支中相同的定义。 能够循环访问数据的项调用以并行方式,某些操作,等待响应的每一项是很多包括本文中讨论的几个的设计模式中的关键。
侦听的超时
在侦听超时方案,必须等待某些输入但只在一定的时间要求。 渚嬪的方式 您可能有通知使用电子邮件和需要等待但如果的答复,管理器管理器没有响应时间,在特定时间内您的工作流都应采取如发送提醒的进一步操作。
此模式的任何实现的核心是,Listen 活动。 侦听活动允许工作流可暂停,同时等待许多不同的事件或输入。 此功能还可以完成与并行活动,但不同之处等待所有的事件的并行活动而侦听活动可响应第一个事件发生并停止侦听的所有其他事件时。 将此功能能够等待一个指定由该延迟活动的时间与组合在一起使工作流等待一个事件,但超时,如果不会发生该事件。 图 3 显示等待消息到达通过 Windows 通信基础 (WCF) 或超时过期的一个 Listen 活动。 请注意 Listen 活动可以有多个分支可以因此侦听对于很多不同的事件在同一时间。
图 3 可与多个分支侦听活动
此类实现使工作流等待一个特定的响应时间。 通常,在超时发生在工作流旨在采取相应的操作。 在超时发生后,展开管理器审核示例上,,经理应提醒她了她需要批准的未处理请求。 经理将提醒后,工作流需要还原到的响应超时时间,等待状态。 围绕一个侦听一个时活动使工作流继续等待直到满足某个条件。 侦听活动的分支内, 继续等待或收到的需要响应后上移动适当操作条件。 在简单的情况下一个标志可用于管理导致 While 的该条件循环,直到设置了标志的活动。 因此时,管理器发送响应,标志可设置和 While 活动关闭,允许工作流将移动到下一个活动。 与延迟活动分支中, 会发生延迟后,活动用于管理器发送提醒和确保仍将条件设置为强制 While 活动再次,安排子活动,如图 4 的 中所示。
图 4 收听与在发送提醒
在此的示例停止等待该触发器条件是只需在的经理
原创力文档


文档评论(0)