У меня очень простой класс:
class Trace
{
void WriteTrace()
{
Console.WriteLine("Trace !");
}
}
Я хочу, чтобы этот класс подписывался на событие, например, событие загрузки элемента управления формы. Элемент управления и событие определяются динамически, поэтому я хочу использовать отражение, чтобы сделать это, я пытаюсь что-то вроде этого:
В моем классе Trace у меня есть этот метод:
public void SubscribeEvent (Control control)
{
if (type.IsAssignableFrom(control.GetType()))
{
Trace test = this;
MethodInfo method = typeof(Trace).GetMethod("WriteTrace");
// Subscribe to the event
EventInfo eventInfo = control.GetType().GetEvent("Load"); // We suppose control is a form
Delegate handler = Delegate.CreateDelegate(eventInfo.EventHandlerType, control, method); // ERROR : Error binding to target method
}
}
}
В последней строке есть ошибка: Ошибка привязки к целевому методу. Что не так в моем фрагменте?
Спасибо!
РЕДАКТИРОВАТЬ : ОК, ошибки больше нет, но когда из формы вызывается событие «Load», метод WriteTrace не вызывается (я поставил точку останова, но она не достигнута). Почему?
Извините за редактирование, все работает очень хорошо:)