我正在将代码从 Autofac 1.4 升级到 2.1.10 Release Candidate。
我的模块以前执行过这样的注册:
builder.RegisterCollection<IExceptionHandler>()
.As<IEnumerable<IExceptionHandler>>()
.FactoryScoped();
builder.Register<AspNetExceptionHandler>()
.As<IExceptionHandler>()
.MemberOf<IEnumerable<IExceptionHandler>>()
.FactoryScoped();
现在,RegisterCollection没有无参数重载。我不在乎给它命名。假设直接传入就可以了null,我的代码在 2.1 中是这样的:
builder.RegisterCollection<IExceptionHandler>(null)
.As<IEnumerable<IExceptionHandler>>()
.InstancePerDependency();
builder.RegisterType<AspNetExceptionHandler>()
.As<IExceptionHandler>()
.MemberOf<IEnumerable<IExceptionHandler>>(null)
.InstancePerDependency();
但是,当我编译时,我收到以下错误.MemberOf:
使用通用方法 'Autofac.RegistrationExtensions.MemberOf(Autofac.Builder.RegistrationBuilder, string)' 需要 '3' 类型参数
我尝试输入一个集合名称而不是 null,以防万一,但没有效果。
在 2.1 中注册集合的正确方法是什么?