2016-07-05 2 views
0

У меня есть форма, которую я зарегестрирована, используя Autofac как тотСобытия обжигают несколько раз при использовании Autofac

builder.RegisterAssemblyTypes(assembly) 
    .AssignableTo<Form>() 
    .As<IMyForm, MyForm>() 
    .AsImplementedInterfaces(); 

Все работает нормально, но когда я добавил событие Load для Myform что-то плохое было СЛУЧИЛОСЬ. Если я открыл событие загрузки первого события MyForm, но если я его открывал более одного раза, событие загрузки запускается более одного раза. Чтобы предотвратить это, я добавил метод OnClosing, который выглядит так:

protected override void OnClosing(CancelEventArgs e) 
{ 
    base.OnClosing(e); 
    Load -= MyForm_Load; 
} 

Есть ли лучший способ сделать это?

ответ

0

Я бы отменил регистрацию в самом MyForm_Load, чтобы вы были более последовательными. Также я не думаю, что ваш код неправильный.

Смежные вопросы