2011-04-20 4 views
0

나는 다음과 같은 객체 계층 구조를 가지고있다. 일부 클래스는 IVideoStreamTypeA 또는 IVideoStreamTypeB를 직접 사용하고 일부 클래스는 IVideoStream의 목록을 사용합니다.사용 StructureMap은

는 레지스터 코드는 다음과 같습니다

class MyRegistry: Registry 
{ 
    public MyRegistry() 
    { 
     For<IVideoStreamTypeA>().Use<VideoStreamTypeA>() 
      .Ctor<>() // Specific initialization 
     For<IVideoStreamTypeB>().Use<VideoStreamTypeB>() 
      .Ctor<>() // Specific initialization 

     For<IVideoStreamTypeA>().Singleton(); 
     For<IVideoStreamTypeB>().Singleton(); 
    } 
} 

을 마지막으로 IVideoStream의 목록을 가지고 몇 가지 종류가 있습니다 : 현재 레지스트리 코드와

class MyClass 
{ 
    public MyClass(IEnumerable<IVideoStream> streams) { } 
} 

에서, "스트림"매개 변수입니다 빈. 위에서 두 인스턴스를 주입하기 위해 StructureMap을 얻으려면 어떻게해야합니까?

답변

0

내 현재의 접근 방식은 다음과 같은 사용하는 것입니다

Forward<IVideoStreamTypeA, IVideoStream>(); 
Forward<IVideoStreamTypeB, IVideoStream>(); 

그러나 나는 그것이 최선의 해결책 나는이 유일한 해결책이라고 생각

+0

확실하지 않다. – Euphoric