如何在C#中通过接口实现事件?
我有一个问题:假设我有一个基于插件的系统 我需要某种接口,我可以用它捕获每个插件的事件,例如实现如何在C#中通过接口实现事件?,c#,interface,C#,Interface,我有一个问题:假设我有一个基于插件的系统 我需要某种接口,我可以用它捕获每个插件的事件,例如实现I报告接口 (IReporting) object.OnSomeEvent += <.....> (IReporting)object.OnSomeEvent+= 但是我找不到这样做的方法。你应该写((I报告)obj.XXX而不是(I报告)obj.XXX 关于插件框架,请查看具有良好体系结构的现有解决方案,例如在实现中有没有一种方法可以做到这一点,而不必在调用((Foo)o).rais
I报告接口
(IReporting) object.OnSomeEvent += <.....>
(IReporting)object.OnSomeEvent+=
但是我找不到这样做的方法。你应该写((I报告)obj.XXX而不是(I报告)obj.XXX
关于插件框架,请查看具有良好体系结构的现有解决方案,例如在实现中有没有一种方法可以做到这一点,而不必在调用((Foo)o).raisebo()中转换到具体类Foo?
public interface IFoo
{
event EventHandler Boo;
}
class Foo : IFoo
{
public event EventHandler Boo;
public void RaiseBoo()
{
if (Boo != null)
Boo(this, EventArgs.Empty);
}
}
...
private void TestClass_Boo(object sender, EventArgs e)
{
throw new NotImplementedException();
}
...
object o = new Foo();
((IFoo)o).Boo += TestClass_Boo;
((Foo)o).RaiseBoo();