Reflection, . #, + "". GetValue , MulticastDelegate.
MulticastDelegate, :
EventArgs e = new EventArgs(myClassInstance);
MulticastDelegate eventDelagate =
this.GetType().GetField(theEventName + "Event",
System.Reflection.BindingFlags.Instance |
System.Reflection.BindingFlags.NonPublic).GetValue(myClassInstance) as MulticastDelegate;
Delegate[] delegates = eventDelagate.GetInvocationList();
foreach (Delegate del in delegates) {
del.Method.Invoke(del.Target, new object[] { myClassInstance, e });
}
, NonPublic , .
Raise(), , ? ?
. . "myClassInstance" . , NonPublic BindingFlag .