Мне удается заставить мой код работать, следуя методике, описанной в следующей статье, http://www.pelennorfields.com/matt/2009/03/13/createdelegate-error-binding-to-target-method/
По сути, если я делаю следующее, я получаю ошибку "Ошибка привязки к целевому методу"",
FAIL:
EventInfo eventClick = obj.GetType().GetEvent("TestClick");
Delegate handler = Delegate.CreateDelegate(
eventClick.EventHandlerType, this, "TestClick");
eventClick.AddEventHandler(obj, handler);
УСПЕХ:
Но когда я изменил его на:
MethodInfo methodOn_TestClick = this.GetType().GetMethod("TestClick", new Type[] { typeof(object), typeof(EventArgs));
Delegate handler = Delegate.CreateDelegate(
event_DomClick.EventHandlerType, this, methodOn_TestClick, true); // note the change here
eventClick.AddEventHandler(obj, handler);
Затем я использовал отражение в своем методе TestClick, чтобы получить нужные мне свойства из стандартных EventArgs.
например.
public void TestClick(object sender, EventArgs e)
{
PropertyInfo prop_ID = e.GetType().GetProperty("ID");
int id = Convert.toInt32(prop_ID.GetValue(e, null));
}