2013-09-24 2 views
2

클래스에 적용하려는 속성을 만들고 싶습니다. 메소드가 호출 된 경우이 클래스에서 이의 OnEntryOnExit methodof의 postsharp에, 나는이 같은 정확한 방법 이름을 기록 할 :PostSharp 애스펙트를 클래스 클래스의 모든 메소드에 적용 메소드 이름

"... GetPartners 시작"

또는

"GetPartners 완료 ..."

또는 이외의 경우 이온 발생했습니다

이에 대한 모든 솔루션이 있습니까 "예외가 GetPartners 방법에서 발생?"

답변

6

메소드 추적을 사용 가능하게하는 몇 가지 옵션이 있습니다.

우선, 기존의 PostSharp 진단 패턴 라이브러리를 사용하고 해당 라이브러리에서 [Log] 속성을 추가 및 구성하면됩니다 (Adding detailed tracing).

사용자 고유의 속성을 만들려면 다음 예를 참조하십시오. "PostSharp.Samples.CustomLogging".

기본적으로 메시지를 작성하려면 OnMethodBoundaryAspect 클래스에서 파생되고 OnEntry, OnExit, OnException 메서드를 재정의해야합니다.

public override void CompileTimeInitialize(MethodBase method, AspectInfo aspectInfo) 
{ 
    string methodName = method.DeclaringType.FullName + "." + method.Name; 
    this.enteringMessage = "Entering " + methodName; 
    this.exitingMessage = "Exiting " + methodName; 
} 
: 당신은 컴파일 시간 동안 해당 메시지를 준비하고 예와 같이, 당신의 핸들러의 실행시 다시 사용할 수있는 성능 향상을 위해