次のようにジェネリッククラスを登録しようとしています:
builder.RegisterGeneric(typeof(WindowContext<>))
.AsSelf()
.As<IWindowContext>()
.InstancePerLifetimeScope();
( WindowContext<T> : IWindowContext
)
上記の登録により、ArgumentException
オン ビルドが発生します:サービス 'Inforbase.Presentation.IWindowContext' は、オープン ジェネリック型定義ではありません。
WindowContext<T>
予想される動作は、コンポジション ルートに最も近い への依存関係が、IWindowContext
そのライフタイム スコープ内のいずれかに対して解決されるインスタンスを定義することです。
この概念は少し奇妙で、同じライフタイム スコープ内の 2 つのクラスが異なるタイプのWindowContext<T>
. 私のシナリオでは、エラーまたは上書きの両方が許容されます。
これはAutofacで可能ですか?