StructureMap 4.0に問題があります。 StructureMap 3.0で作業する場合は、ObjectFactoryを使用してすべてのインスタンスを構成し、ソリューション内の任意の場所で独自のインターフェイスを使用してインスタンスを取得するのは非常に簡単です。例えば:global.csでStructureMap 4.0の既存のコンテナを取得
、私は以下のように宣言:ObjectFactory.Initialize(X => {x.For()(使用);}他のクラスにおいて
例えば、Family.csは、それがPesonの インスタンスを取得するのは簡単です: するvar者= ObjectFactory.GetInstance();
はしかし、私は4.0にのStructureMapを更新した後に問題を持っていることではなく、コンテナを使用しています。のObjectFactoryと私はしない既存のコンテナを取得する方法を見つける。私はこのコードが間違っていることを意味する var person = container.GetInstance();
静的変数としてglobal.csに宣言すると、Contain.csクラスからContainerにアクセスできます。私はこのように好きではない。私は、global.csで宣言されている既存のコンテナをフェッチすることによって、ObjectFactoryのようなコンテナの動作をしたいが、それを行う方法はわからない。
私はあなたの意味を理解しています。しかし、私のプロジェクトは、3層の構造に従って構築されています。 IContainerはビジネスレイヤで宣言されますが、私はDataAccess LayerからIContainerにアクセスします。どうやってやるの? (私はDataAccessレイヤがビジネスレイヤの下にあることを思い出します) –
どういう意味ですか? IContainerは、ビジネスレイヤではなく、StructureMapで宣言されています – erikkallen