2010-12-21 3 views
1

Castle Windsor 및 WCF Facility와 함께 Caliburn (MVVM 프레임 워크)을 사용하고 있습니다.Caliburn/Castle WCF Facility 핸들 EndpointNotFoundException

My Presenter 클래스에는 Windsor 컨테이너에서 제공 할 WCF 계약 인 생성자 종속성이 있습니다.

끝점을 찾을 수 없거나 발표자가 분명히 표시되지 않으면 "이 양식을 표시하는 데 필요한 네트워크 서비스를 찾을 수 없습니다."라고 표시되는보기를 원합니다. 나중에 다시.".

이 코드를 중앙화하기 위해 Castle/Caliburn에 연결하는 가장 좋은 방법은 응용 프로그램에서 EndpointNotFoundException으로 인해 해결할 수없는 응용 프로그램의 위치와 상관없이 동일한 오류보기가 표시되도록하는 것입니다.

아이디어가 있으십니까?

나는 .... A는 시도/캐치 엔드 포인트-를 찾을 수 없습니다 '주변의 모든 발표자의 해상도는 그냥 WCF에 따라 넣다 넣어하지 않으려

답변

1

빠른 (그러나에, 더러운 조금 내 의견) 솔루션은 호출자를 모두 구제 필터로 꾸며서 구조 메서드가 특정 예외를 가로 채도록 허용 할 수 있습니다. 공용 기본 클래스를 사용하는 경우 모든 발표자에게 필터를 적용하는 것이 상대적으로 쉽습니다. 공용 상위 클래스에 필터를 적용하면 필터를 수동으로 적용하거나 라우트 된 메시징 스택을 사용자 지정해야합니다. 조금 더 열심히).

실제 서비스 대신 프록시를 사용하여 일종의 "지연 인스턴스화"를 빌드 할 수도 있습니다. 이 프록시에서는 try/catch 핸들러로 실제 WCF 서비스를 해결할 수 있으며 내부적 인 해결이 실패 할 경우 유익한 창을 열 수 있습니다. 호출 컨텍스트에 대한 단서가 없기 때문에이 솔루션을 너무 많이 사용하지 않으므로 부적절한 경우에도 정보를 사용자에게 표시 할 수 있습니다.

또한 an elegant way to handle network outage을 지적하고 싶습니다. 자동으로 네트워크 연결이 필요한 발표자를 여는 동작의 시작 지점을 사용하지 않도록 설정합니다.