StructureMap 4.0 で問題が発生しました。StructureMap 3.0 を使用する場合、ObjectFactory を使用してすべてのインスタンスを構成します。ソリューション内の任意の場所で独自のインターフェイスを介してインスタンスを取得するのは非常に簡単です。例えば:
global.cs で、以下のように宣言します: ObjectFactory.Initialize(x => { x.For().Use(); }
もう 1 つのクラス (Family.cs など) では、Peson のインスタンスを簡単に取得できます。
ただし、StructureMap を 4.0 に更新した後、問題が発生しました。ObjectFactory の代わりに Container を使用しており、既存のコンテナーを取得する方法が見つかりません。つまり、このコードは間違っています var person = container.GetInstance();
Container を global.cs で static 変数として宣言すると、Family.cs クラスからアクセスできます。私はこの方法が好きではありません。global.cs で宣言されている既存のコンテナーをフェッチして、コンテナーを ObjectFactory のように動作させたいのですが、その方法がわかりません。