У меня есть класс контроллера и класс менеджера.
Я хочу, чтобы мой класс менеджера вызывал функцию из моего контроллера для запуска события.
Мой контроллер выглядит примерно так:
public class Controller{
public Controller(Mgr mgr)
{
m_mgr = mgr;
m_mgr.schedulerReload += reloadScheduler;
}
void reloadScheduler(object sender, EventArgs e)
{
ReloadSchedulerQueue();
}
}
где ReloadSchedulerQueue - это функция, которую я хочу вызвать из своего события.
мой класс менеджера выглядит следующим образом
public class Manager{
public event EventHandler schedulerReload;
public void somefunction() {
//do something
schedulerReload(this, EventArgs.Empty);
}
}
Всякий раз, когда я запускаю это, я вижу, чтособытие schedulerReload получает исключение нулевой ссылки, я полагаю, потому что никто не подписан на мое событие.Тем не менее, при просмотре кода я отчетливо вижу, что конструктор и строка
m_mgr.schedulerReload += reloadScheduler;
явно нажимаются несколько раз перед вызовом somefunction ().Я знаю, что могу обработать это исключение, проверив свой обработчик событий перед вызовом, но я не знаю, почему мой обработчик событий не подписывается.
Что мне здесь не хватает?