动态重新定义添加和删除事件的方法

时间:2017-05-18 13:51:48

标签: c# events reflection

我有类似的东西:

public abstract class BaseClass
{
    protected void ToDoOnAdd()
    {

    }

    protected void ToDoOnRemove()
    {

    }
}

public class TopClass : BaseClass
{
    public event EventHandler OnEvent;
}

我想要做的是每次调用ToDoOnAdd时调用方法OnEvent += ...,调用ToDoOnRemove时调用OnEvent -= ...,并在每次定义的事件中调用类派生自BaseClass

我知道我可以做类似的事情:

public class TopClass : BaseClass
{
    private event EventHandler onEvent;

    public event EventHandler OnEvent
    {
        add
        {
            onEvent += value;
            ToDoOnAdd();
        }
        remove
        {
            onEvent -= value;
            ToDoOnRemove();
        }
    }
}

但我希望找到一个动态执行此操作的解决方案,以便我(或使用BaseClass的其他开发人员)不必为每个事件执行此操作。

有没有办法在BaseClass的构造函数中使用反射?

   public BaseClass()
    {
        var events = this.GetType().GetEvents();
        foreach (var ev in events)
        {
            ???
        }
    }

提前致谢!

0 个答案:

没有答案