Использование RegisterInitializer для подключения обработчиков событий

У меня есть служба WCF, которая использует простой инжектор для внедрения зависимостей. Я хочу подключить некоторые обработчики событий в загрузчик контейнера. Я создал интерфейсIStatusChangeNotification:

public interface IStatusChangeNotification
{
    event EventHandler<int> JobStatusChange;
}

мойCommandHandler инвентарьIStatusChangeNotification и есть два класса обработчиков событийEmailNotification а такжеMmrNotificationкаждый из которых определяетNotify() метод. Тогда в моем коде начальной загрузки у меня есть следующее:

container.Register<EmailNotification>();
container.Register<MmrNotification>();

container.RegisterManyForOpenGeneric(typeof(ICommandHandler<>),
                                     Assembly.GetExecutingAssembly());

container.RegisterInitializer<IStatusChangeNotification>(scn => 
    {
        scn.JobStatusChange += container.GetInstance<EmailNotification>().Notify;
        scn.JobStatusChange += container.GetInstance<MmrNotification>().Notify;
    });

Это работает, и уведомления получены. Мой вопрос заключается в том, является ли это правильным / лучшим подходом для подключения обработчиков событий? Как мне удалить обработчики в конце запроса, и не удастся ли их удалить, приведет к утечке памяти?

Ответы на вопрос(1)

Ваш ответ на вопрос