Basically, I\'m accepting an event name as a string, to get the EventInfo. Then, I\'m discovering the event handler type and event argument type using reflectio
It turns out I was vastly over-complicating things! Barry Kelly had the right idea:
static T CastDelegate(Delegate src)
where T : class
{
return (T)(object)Delegate.CreateDelegate(
typeof(T),
src.Target,
src.Method,
true); // throw on fail
}