2013-05-27 2 views
0

기존 구조체에서 새로운 StructureMap 컨테이너를 만드는 방법이 있습니까? fisrt 컨테이너의 모든 종속성과 새 컨테이너의 다른 종속성을 갖고 싶습니다.컨테이너에서 새 컨테이너를 만드는 방법은 무엇입니까?

+1

이 문제를 해결하기 위해 어떤 문제가 있습니까? – Steven

+0

프로젝트 내부에 종속성이 지정된 컨테이너가 있습니다. 첫 번째 프로젝트를 참조하는 또 다른 프로젝트가 있고이 프로젝트에만 첫 번째 프로젝트에 설정된 종속성을 사용하는 컨테이너와이 프로젝트에 대해 추가 된 다른 종속성을 만들려고합니다. –

+1

단일 응용 프로그램 (단일 응용 프로그램 도메인)에는 일반적으로 응용 프로그램에있는 프로젝트/어셈블리 수와 관계없이 단일 컨테이너 인스턴스 만 있어야합니다. 하나의 컨테이너를 사용하여 모든 프로젝트의 모든 종속성을 등록하십시오. – Steven

답변

2

nested container은 부모 컨테이너에서 모든 비 일시적인 인스턴스 (싱글 톤, HttpContext, ThreadLocalStorage 범위 등)를 가져옵니다. 일단 폐기되면 IDisposable을 구현하는 모든 일시적인 객체가 삭제됩니다. 당신은 생성하고 HttpRequest 당에 사용되는 객체 폐기로의 과도의 수명 기간 동안 세밀한 제어를 필요로 할 때

using (IContainer nested = ObjectFactory.Container.GetNestedContainer()) 
{ 
    var service = nested.GetInstance<IService>(); 
    service.DoSomething(); 
} 

중첩 된 컨테이너는 일반적으로 사용됩니다

당신은 사용하여 중첩 된 컨테이너를 생성 대본.

관련 문제