유형이 유니티에 등록 된 경우 테스트
-
20-08-2019 - |
문제
유형이 Unity 컨테이너에 등록되었는지 테스트 할 수 있습니까?
해결책
Unity 2.0은 다음을 가질 것입니다 IsRegistered
컨테이너에 유형이 등록되었는지 확인하는 데 사용할 수있는 방법.
Unity 2.0의 Beta1은 2 월 10 일 현재 CodePlex에서 사용할 수 있습니다. 릴리스 노트를보고 여기에서 다운로드하십시오. http://unity.codeplex.com/wikipage?title=unity2%20beta1
업데이트:
2010 년 2 월 27 일에 Unity 2.0 베타 1을 다운로드 및 테스트했으며 아직 생산 준비가되었습니다. Unity 1.2를 사용하는 경우 오늘은 불완전한 (?) iunityContainer 인터페이스로 인해 Unity 2.0을 작동시키기 위해 몇 가지 주요 작업을 수행해야합니다. 따라서 오늘 등록 된 방법을 작동 시키려면 다음과 같은 확장 방법을 만들 수 있습니다.
public static class UnityContainerExtensions
{
public static bool IsRegistered<T>(this IUnityContainer container)
{
try
{
container.Resolve<T>();
return true;
}
catch
{
return false;
}
}
}
내가 사용하지 않는다는 점에 유의하십시오 ResolveAll
여기. 그 이유는 그 이유입니다 ResolveAll
Unity Docs에 명시된대로 기본값 (명명되지 않은) 등록을 반환하지 않습니다.
이 방법은 동일한 유형이지만 다른 이름으로 여러 유형을 등록한 경우 유용합니다.
이 메소드는 기본값 (명명되지 않은) 등록의 인스턴스를 반환하지 않습니다.
다른 팁
유일한 다른 옵션 (현재)은 사용하는 것입니다. ResolveAll<T>()
결과를 열거합니다.
제휴하지 않습니다 StackOverflow