2009-02-24 2 views
10

Windsor 컨테이너에서 찾을 수없는 구성 요소를 해결할 때 예외가 발생합니다.Castle Windsor : Resolve()에 의해 throw 된 예외 발생을 방지합니다.

구조체 맵에는 TryGetInstance 메서드가 있습니다.이 메서드는 null을 반환하고 요청 된 구성 요소를 찾을 수 없습니다.

Castle Windsor에는 이와 비슷한 것이 있습니까? 아니면 이러한 예외를 잡아야합니다 (예외를 던지고 catch하는 성능 오버 헤드 때문에 그다지 좋아하지 않습니다). 마이크로 커널은 윈저 컨테이너의 해결 방법을 호출하기 전에 등록 된 구성 요소의 인스턴스가있는 경우 사전에

감사합니다,

Remco의

답변

12

당신은 확인할 수 있습니다.

다음과 같은 것이 작동해야합니다.

if (windsor.Kernel.HasComponent(componentType)) 
{ 
    return windsor.Resolve(componentType); 
} 

return null; 
+3

예.하지만 이름 및 유형에 의한 해결에 과부하가 없습니다. 이름과 유형 중 하나만 사용할 수 있습니다. –

+0

이봐, 나는이 두 시간을 찾고 있었다. 감사. –

관련 문제