StructureMap 4.0에 문제가 있습니다. StructureMap 3.0을 사용하여 작업 할 때 ObjectFactory를 사용하여 모든 인스턴스를 구성하므로 솔루션 내부의 자체 인터페이스를 통해 인스턴스를 얻는 것이 매우 쉽습니다. 다른 클래스에서StructureMap 4.0의 기존 컨테이너 가져 오기
, ObjectFactory.Initialize (X => {x.For()() 사용합니다.} 예를 들어 다음 global.cs에서
, 나는 아래와 같이 선언 예를 들어, Family.cs, 그것은 Peson의 인스턴스를 쉽게 얻을 : VAR 사람 = ObjectFactory.GetInstance(); 그러나
, 나는 4.0 StructureMap를 업데이트 한 후 문제를 가지고 대신 컨테이너를 사용합니다. ObjectFactory의 기존 컨테이너를 얻는 방법을 찾으십시오.이 코드가 잘못되었음을 의미합니다. var person = container.GetInstance();
Container를 global.cs에 정적 변수로 선언하면 Family.cs 클래스에서 컨테이너에 액세스 할 수 있습니다. 나는 이런 식으로 싫어. global.cs에 선언 된 기존 컨테이너를 가져 와서 ObjectFactory와 같은 컨테이너 작업을 원하지만 어떻게 수행해야할지 모르겠다.
나는 당신의 뜻을 이해합니다. 그러나, 내 프로젝트는 3 층 구조를 따라 만들어졌습니다. IContainer는 Business Layer에서 선언되지만 DataAccess Layer에서 IContainer에 액세스하려고합니다. 어떻게해야합니까? (DataAccess 계층이 비즈니스 계층 아래 있다는 것을 상기합니다) –
무엇을 의미합니까? IContainer가 비즈니스 계층이 아니라 StructureMap에서 선언되었습니다. – erikkallen