IoC のニーズに合わせて StructureMap を使用しています。
快適にテストできるようにするためIContainer
に、通常はコンストラクターのパラメーターとして、可能な限りインスタンスを渡します。ObjectFactory
便宜上、パラメーターなしのコンストラクターの使用にフォールバックできるようにしたいと考えています。
これを行う最も簡単な方法 (私が考えた) は、単純にクラス ラップを取得しIContainer
、ObjectFactory
それを他のコンストラクターに渡すことです。残念ながら、このインスタンスが公開されている場所を見つけることができません。
質問は:
ユーザー提供のインスタンスと同じくらい簡単に処理できるように、IContainer
内部を取得する方法はありますか?ObjectFactory
ObjectFactory
または、の構成を新しいContainer
インスタンスに複製する方法はありますか?
例:
私は次のことができるようにしたいと思います:
public class MyClass
{
public MyClass()
{
Container = ... // The ObjectFactory container instance.
}
public MyClass(IContainer container)
{
Container = container;
}
public IContainer Container { get; private set; }
}