문제

유형이 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>() 결과를 열거합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top