Чтобы получить события, которые объявлены или унаследованы текущим типом
typeof(MyClass).GetEvents()
После этого для каждого вы можете добавить простой делегат
MyClass instance = new MyClass();
foreach (var e in typeof(MyClass).GetEvents())
{
FieldInfo fi = typeof(MyClass).GetField(e.Name,
BindingFlags.NonPublic | BindingFlags.Instance);
object value = fi.GetValue(instance);
if (value == null)
{
e.AddEventHandler(instance, handler);
}
}