隐藏在接口后面的静态类- EventHandlers
本文关键字:静态类 EventHandlers 接口 隐藏 | 更新日期: 2023-09-27 17:51:07
我正在对一个现有的项目做一些维护,该项目有静态服务类从waazoo中出来
基本上,我已经成功地将它们隐藏在直接调用现有静态的接口+包装器类后面。
,
有一些现有的静态类具有事件处理程序,并且将这些事件处理程序包装在属性中将无法工作,因为EventHandler只能在+=或-=的左侧。
我能想到的唯一方法是提供在包装器类中添加和删除eventhandler的方法,然后访问静态类的事件处理程序。
是否有一种方法可以做到这一点,使现有的+=和-=不需要改变?
例如,静态类的现有用法是SomeExistingStaticClass.SomeEventHandler += MyMethod;
重构IStaticInterface myClass = new WrapperSomeExistingStaticClass();
myClass.SomeEventHandler += MyMethod;
在包装器内部,我尝试将SomeEventHandler作为带有getter的属性,就像这样
public EventHandler SomeEventHandler
{
get
{
return SomeExistingStaticClass.SomeEventHandler;
}
}
是否有一些我错过了,或者是最好的解决方案在这里使用AddHandler和RemoveHandler方法包装类?
如何在包装器类中实现一个新事件,然后实现自定义事件访问器?在这里,您可以从静态服务类重新路由事件,并保持您的事件处理程序同步。这里有一个简单的例子(自定义事件访问器)