在 ASP.NET Web 应用程序中,事件按特定顺序触发:
为了简单起见加载=>验证=>回发=>渲染
假设我想开发这样的管道式事件
例子 :
活动1 [“观众正在聚集”,各位{活动2和活动3请等待,直到我发出信号}]
事件 1 完成任务后
活动2 [{活动2,活动3“观众聚集!我的任务结束了}]
事件 2 正在接管控制权以执行其任务
事件2【“观众正在登录”事件3请稍候,直到我发出信号]
事件 2 完成任务后
.....
活动 3 [“Jon skeet 的演讲结束:)”]
任何人都可以用非常基本的例子来解释,我该如何设计这个?
此示例展示了如何采用简单的抽象类和处理程序列表上的简单扩展方法,并实现您正在讨论的管道模型。这当然是一个简单的示例,因为我只是将一个字符串作为事件数据传递给它。但显然您可以根据您的情况进行定制。
扩展方法RaiseEvent
枚举处理程序列表并调用Handle
处理程序上的方法来通知它该事件。
public abstract class Handler
{
public abstract void Handle(string event);
}
public static class HandlerExtensions
{
public static void RaiseEvent(this IEnumerable<Handler> handlers, string event)
{
foreach(var handler in handlers) { handler.Handle(event); }
}
}
...
List<Handler> handlers = new List<Handler>();
handlers.Add(new Handler1());
handlers.Add(new Handler2());
handlers.RaiseEvent("event 1");
handlers.RaiseEvent("event 2");
handlers.RaiseEvent("event 3");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)