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

C# 动态重新定义事件的添加和删除方法,c#,events,reflection,C#,Events,Reflection,我有这样的想法: public abstract class BaseClass { protected void ToDoOnAdd() { } protected void ToDoOnRemove() { } } public class TopClass : BaseClass { public event EventHandler OnEvent; } 我想做的是每次调用OnEvent+=…时调用方法ToDoOnAdd,

我有这样的想法:

public abstract class BaseClass
{
    protected void ToDoOnAdd()
    {

    }

    protected void ToDoOnRemove()
    {

    }
}

public class TopClass : BaseClass
{
    public event EventHandler OnEvent;
}
我想做的是每次调用
OnEvent+=…
时调用方法
ToDoOnAdd
,调用
OnEvent-=…
时调用方法
ToDoOnRemove
,对于从
BaseClass
派生的类中定义的每个事件

我知道我可以做一些事情,比如:

public class TopClass : BaseClass
{
    private event EventHandler onEvent;

    public event EventHandler OnEvent
    {
        add
        {
            onEvent += value;
            ToDoOnAdd();
        }
        remove
        {
            onEvent -= value;
            ToDoOnRemove();
        }
    }
}
但我想找到一个解决方案来动态地完成这项工作,这样我(或其他使用基类的开发人员)就不必为每个事件都这样做

有没有办法在
基类的构造函数中使用反射

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