使用Autofac时,事件会被多次触发

时间:2016-07-05 18:29:55

标签: .net winforms autofac

我有使用Autofac注册的表单

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

一切正常但是当我向MyForm添加Load事件时发生了一些不好的事情。如果我打开MyForm第一次加载事件被激活,但如果我多次打开它,那么load事件也会被多次触发。为了防止我添加OnClosing方法,看起来像

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

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我会在MyForm_Load本身取消注册该事件,以便您更加一致。另外我认为你的代码不对。