2013-08-30 3 views
0

EHAB과 함께 사용할 사용자 지정 예외 처리기를 만들려고합니다. 사용법에서 찾을 수 있었던 것은 HandleException 메서드 만 필요로하는 IExceptionHandler 인터페이스입니다. 에 "예상 생성자는,"이 경우엔터프라이즈 라이브러리 예외 처리 블록을 사용하여 사용자 지정 예외 처리기를 만드는 방법

System.InvalidOperationException 

    {"The type 'Paychex.IP.Common.TempClassLibrary.TempExceptionHandler, TempClassLibrary, 
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' for custom exception handler 
    with name 'TempExceptionHandler' does not have the expected constructor 
    (C:\\Projects\\IP\\Common\\TempTestingConsole\\bin\\Debug\\TempTestingConsole.vshost.exe.Config 
    line 28)."} 

어떻게 그 모습에 문서를 찾을 수 :하지만, 다른 요구 사항은 내가이 예외를 얻을 수 있기 때문에, 분명히있다? 기본 클래스뿐만 아니라 IExceptionHandler 인터페이스를 상속해야합니까? 합니다 ('임시 ...'클래스는, 일을 알아내는 단지 내 샌드 박스입니다이 ... 최종 클래스되지 않을 것)

추가 정보 : 내 "샌드 박스"예외 핸들러 클래스는 다음과 같다 :

[ConfigurationElementType(typeof(CustomHandlerData))] 
public class TempExceptionHandler : IExceptionHandler 
{ 
    public Exception HandleException(Exception exception, Guid handlingInstanceId) 
    { 
     string oldMsg = exception.Message; 
     string newMsg = "Added by TempExceptionHandler: " + oldMsg; 
     ApplicationException newException = new ApplicationException(newMsg); 
     return newException; 
    } 
} 

사용자 지정 처리기 클래스를 선택하기 위해 대화 상자를 열었을 때 EntLib config 유틸리티에서 "ConfigurationElementType (typeof (CustomHandlerData))"특성을 확인하여 요구 사항을 파악했습니다 (제목 표시 줄에 있음). 대화 상자), 그러나 나는 다른 어떤 요구 사항이 의미하는지 전혀 모른다.

+0

[link] (http://infiniteimprobability.blogspot.com/2007/05/implementing-iexceptionhandler.html) 여기 내 질문에 대한 부분적인 대답을 발견했습니다. 올바른 매개 변수를 사용하여 클래스에 빈 생성자를 추가하기 만하면됩니다. :'public TempExceptionHandler (NameValueCollection attributes) {}'는 예외를 멀리 쫓았습니다. 그 완벽한 문서를 사랑해야합니다 ...--) –

+0

... 이제 해당 생성자가 해당 수집 매개 변수로 수행해야하는 작업을 확인하십시오 ... –

답변

1

예를 들어 Creating a Custom Provider을 참조하십시오. 다양한 예외 처리 시나리오를 처리하는 Enterprise Library 5.0 - Extensibility Labs도 있습니다.

위의 내용은 Enterprise Library 5에 대한 내용이지만 대부분의 세부 사항은 Enterprise Library 6에도 적용됩니다. 한 가지 예외는 GetRegistrations 무시가 BuildExceptionHandler 무시로 바뀌 었습니다.

NameValueCollection 생성자 측면에서 기본 디자인 시간 통합에 사용됩니다. 모든 XML 속성은 이름 값 쌍으로 생성자에 전달되며 클래스는 적절한 값을 추출하여 사용할 수 있습니다.

이제 Enterprise Library 6에는 자신의 Hands-On Labs이 있습니다.

+0

정보를 제공해 주셔서 감사합니다! –