コードを 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 でコレクションを登録する適切な方法は何ですか?