我有一个类,处理发送&通过我的应用程序和网络之间的套接字接收。该类使用其他类,包括低级别的sockket连接类和创建要发送和处理收到的数据的消息的PDU处理程序类。在运行时自动生成自定义事件
现在我使用一个事件来告诉我的类低级连接类有数据,我需要将该数据发送到PDU处理程序以转换为应用程序可以使用的信息,然后将数据传递给应用程序。
对于未来的使用,我试图让该类尽可能通用,以便在未来的服务器/客户端项目中,我将只需要更改PDU处理程序,以考虑可用的新操作以及如何处理数据。
所有这一切都在进行中,现在我正面临将数据交还给应用程序的问题。为此,我的逻辑方法是让应用程序知道数据已准备好收集的事件。对此,我可以:
一)有一个事件,让应用程序理清它是通过操作码(可行) 二)什么样的信息有每个操作代码的一个事件,并有应用订阅所有他们因而知道在启动时它是什么让
考虑使事情一般的想法,并在b规定的做法,是有办法dinamicly创建基于在运行时给定的委托签名事件?
e。 G。 想象你在叫MyOperation1和MyOperation2枚举操作码和您已经定义了一个委托,如:
public delegate void PDUEventHandler(ParamType Param, [...]);
,我想定义事件称为:
public event PDUEventHandler MyOperation1;
public event PDUEventHandler MyOperation2;
但是,如果我添加一个新的操作码我将需要一个事件。
此事件是否可以创建或者我需要手工完成? 如果我需要手工完成,那么我想单个事件会更好,并处理应用程序的一面。
我认为你应该选择A并使用像Chain of Responsibility(http://www.dofactory.com/Patterns/PatternChain.aspx)这样的模式来处理事件,也许使用MEF(http:// msdn .microsoft.com/en-us/library/dd460648.aspx)加载将处理每种操作代码的对象。 – Fabio 2012-03-16 13:56:23
有趣的框架 - 不知道它 - 将不得不考虑它 - 虽然每个处理程序有1个类(在我的情况下操作)似乎过度 - 会看得更深入 - 谢谢 – 537mfb 2012-03-16 15:20:29