문제

나는 현재 많은 반복이있는 문제와 그들의 구현이 모두 Unity와 함께 생성 된 문제를 다루고 있습니다. 이러한 클래스에는 정규 기지에서 예외를 제외하고 일부 방법이 포함되어 있으며 해당 클래스 주변에서 동적 프록시를 만들고 싶었으므로 다른 곳에서 처리하는 방법에서 발생하는 모든 예외를 포착 할 수 있습니다.

Unity와 함께 연주하면서 Unity Interception을 사용하여 이와 같은 일을 수행 할 수 있는지 궁금합니다.

즉, 투명한 프록시 interceptor를 생성하고 이러한 방법의 invocatino 주위에 트리 캐치 블록을 감싸십시오. 이것이 전혀 가능합니까, 아니면 내가 잘못된 방향으로 가고 있습니까? 감사해요

도움이 되었습니까?

해결책

예, Unity Interception (AOP)은 예외 처리를 처리하는 훌륭한 방법입니다. 다음과 같은 모든 종류의 행동을 추가 할 수 있습니다.

  • 로그 파일 또는 이벤트 로그에 씁니다
  • 이메일을 보내다
  • 성능 카운터를 증가시킵니다
  • 타임 아웃 또는 잠금 예외에서 자동 재 시도
  • 다른 오류를 재확인합니다

통화 핸들러는 다음과 같습니다.

public override IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
{
    IMethodReturn result = getNext()(input, getNext);

    if (result.Exception != null)
    {
        // do something
    }

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