2012-08-03 3 views
0

나는 많은 자손 (예 : IContactModel : IBaseModel;, IRelationModel : IBaseModel; 등)이있는 기본 인터페이스 IBaseModel과이 인터페이스를 구현하는 개체가 있습니다.Unity Resolve 모든 자손

이 자손 인터페이스는 모두 Unity 컨테이너에 등록됩니다.

IBaseModel의 자손 인 모든 개체를 어떻게 해결할 수 있습니까?

+0

[container.ResolveAll ()] (http://msdn.microsoft.com/en-us/library/ee651424)는 어떨까요? 컨테이너 등록이 어떻게 생겼는지 게시 할 수 있습니까? 그리고 하나의 샘플은 당신이 모든'IBaseModel'을 어디서 사용합니까? – nemesv

+0

이 경우 ResolveAll은 작동하지 않습니다. – Dumitru

답변

0
var types = Container 
    .Registrations 
    .Where(x => typeof (IBaseModel).IsAssignableFrom(x.RegisteredType)) 
    .Select(x => x.RegisteredType) 
    .ToList(); 

var result = types 
    .Select(x => (IBaseModel) Container.Resolve(x.UnderlyingSystemType)) 
    .ToList();