2011-02-07 3 views
5

Unity 컨테이너에서 배열 유형을 등록하고 해결할 수 있습니까? 나는 같은 것을 할 싶습니다Unity (Prism) 컨테이너에서 배열 유형 확인

this.mContainer 
    .RegisterType<ISomeType, SomeType>() 
    .RegisterType<ISomeType[], SomeType[]>(); 
ISomeType[] lSomeTypes = this.mContainer.Resolve<ISomeType[6]>(); 

내가 배열 유형을 등록해야하고, 유니티 혼자 RegisterType<ISomeType, SomeType>()Resolve<ISomeType[]>()에 따라 배열을 파악하지 않은 경우 그것은 더 나은 것입니다.

+0

설명서가 있지만 매우 명확하지는 않습니다 ... http://msdn.microsoft.com/en-us/library/ff660882%28v=pandp.20%29.aspx#_Toc260122621 –

답변

7

명명 된 등록을 사용하여 특정 유형에 대해 여러 유형을 등록하면 컨테이너가 해당 유형의 배열에 대한 종속성을 확인하면 자동으로 모든 명명 된 등록이 주입됩니다.

그래서이 작동 :

this.mContainer 
    .RegisterType<ISomeType, SomeImpl1>("one") 
    .RegisterType<ISomeType, SomeOtherImpl>("other") 
    .RegisterType,ISomeType, AnotherImpl>("another"); 

ISomeType[] someTypes = mContainer.Resolve<ISomeType[]>(); 

ISomeType []의 의존성이 발생할 때마다 킥이 전송 로직 - 배열 주입 만 주입 것이다 생성자 파라미터 주입 특성 등

참고 등록입니다. 명명되지 않은 기본 등록은 배열에 포함되지 않습니다.