이럴 AutoLogExceptionsAspect이 onexception 측면에 관련된 (또는 적어도되어 있지 않으며
[Serializable]
public class AutoLogExceptionsAspect : OnExceptionAspect
{
public override void OnException(MethodExecutionArgs args)
{
AutoLogExceptionEventSource.Log.AutoLogException(args.Exception.GetType().Name, args.Exception.Message, args.Exception.StackTrace);
args.FlowBehavior = FlowBehavior.Continue;
}
public override Type GetExceptionType(MethodBase targetMethod)
{
return typeof(Exception);
}
}
나는 클래스에이 장식을 시도 의무가 아닌).
일반적으로 Exception (또는 다른 "메서드"aspect 속성)이 호출되지 않으면 PostSharp 호출 시간에 빌드 체인에 문제가 있었기 때문입니다.
빌드 머신에서 포스트 샤프가 실행 중인지 확인하고 프로젝트 속성에서 포스트 샤프가 활성화되어 있는지 확인하십시오 (예 : 포스트 샤프를 처리해야하는 어셈블리의 속성에서 "SkipPostSharp"스위치가 없음). 그렇지 않으면 속성이 실행되지 않습니다.
GetExceptionType 재정의는 중복됩니다. 어쨌든 '예외'를 잡아낼 수 있습니다. 귀하의 클래스/프로젝트를 어떻게 장식했는지 보여주십시오 –
@YuvalItzchakov, 수정 된 질문을 참조하십시오. – ProfK
시도하십시오 [assembly : YourNamespace.AutoLogExceptionsAspect (AttributeTargetTypes = "YourNamespace. *")]' –