Примерно так (предупреждение - тестирование не выполняется):
// get the methodinfo for the method you want to add
MethodInfo methodToAdd = typeof(AAA).GetMethod("MyMethod");
// create a delegate instance for it
Delegate methodDelegate = Delegate.CreateDelegate(typeof(BBB.MyDelegate), methodToAdd);
// get the event you want to add to
EventInfo eventToAddMethodTo = typeof(BBB).GetEvent("MyEvent");
// call the event's add method, with the delegate you want to add
eventToAddMethodTo.AddEventHandler(null /*or the AAA instance if this is a non-static event */, methodDelegate);
Если вы хотите добавить не событие, а просто еще одно Delegate
, тогда вы используете Delegate.Combine
:
Delegate combinedDelegate = Delegate.Combine(oldDelegate, methodDelegate);