4

종속성 주입에 Unity를 사용할 때 MVC의 IDependencyResolver.GetServices 구현에 대한 질문이 있습니다.Unity를 사용하는 IDependencyResolver.GetServices가 기본 (이름 지정되지 않은) 등록을 반환해야합니까?

등록되지 않은 유형을 해결하려고 할 때 유니티 던진 예외 문제를 해결하기 위해 구현 된 구현 예가 몇 가지 있습니다.

하는 데는 보통 GetServices는 다음과 같이 구현됩니다

나에게 관심, 그리고 내가 어떤 확인을 어느 방법을 찾을 수 없었습니다 어떤
IEnumerable<object> IDependencyResolver.GetServices(Type serviceType) 
{ 
    try 
    { 
     return _container.ResolveAll(serviceType); 
    } 
    catch 
    { 
     return new List<object>(); 
    } 
} 

는 ResolveAll 기본 (이름) 등록을 반환하지 않습니다. here을 참조하십시오.

IDependencyResolver에 대한 설명서는 동일한 내용을 제공하지 않습니다.

IDependencyResolver.GetServices가 등록 된 모든 인스턴스 또는 명명 된 인스턴스 (Unity parlance 사용)를 반환해야하는지 여부를 아는 사람이 있습니까?

+0

NHibernate에서이 접근법을 사용할 때 별난 결과가 나타납니다. 해결 방법을 얻었습니까? – Rippo

+0

다른 답변이 있지만 삭제 된 것 같습니다. –

+0

글쎄, 문제의 일부는 게시물에 "질문"부분이 누락되었을 수 있습니다. –

답변

0

아래 코드를 시도하십시오. 이것이 효과가 있기를 바랍니다.

return (serviceType.IsClass && !serviceType.IsAbstract) ||  _container.IsRegistered(serviceType) ? _container.ResolveAll(serviceType) : new object[] {}; 
관련 문제