非常に限られた数のシナリオでは、未知のType(コンパイル時)からその型に登録されたオブジェクトのインスタンスに移動する必要があります。Castle Windsor Weak Typed Factory
ほとんどの部分については、私はタイプされたファクトリを使用して私は、コンパイル時に解決したい...ので、私は、コンストラクタ
にFunc<IMyType>
を注入タイプを知っている...しかし、シナリオのこれらの限られた数のコンテナへの直接の呼び出しを避けるために(ライブラリからWindsorを参照する必要があります。これは避けたいパターンです)、私はFunc<Type,object>
を内部に挿入する必要があります。 FuncのTypeパラメータに対応する型(type)を返します。
これを設定する最も簡単で簡単な方法はありますか?
私は次のことを試してみましたが、この設定で、私は私が望むもので間違いではありません完全に定期的TypedFactoryFacilityバイパス終わる:どのような援助のため、事前に
Kernel.Register(Component.For(typeof (Func<Type, object>)).LifeStyle.Singleton.UsingFactoryMethod(
(kernel, componentModel, creationContext) =>
kernel.Resolve(/* not sure what to put here... */)));
感謝を。
Funcをとる単純なIServiceProviderのインスタンスを挿入することに決めました。そこにどんな懸念? –
Jeff
この機能を直接使用するのとどのように違いますか?すべての懸念は生涯に関するものです。引っ張るオブジェクトがいつリリースされるのか、またメモリリークが発生しないのかを考えてみましょう。それはすべてです –
全く違う、あなたが正しいです。 – Jeff