데스크탑 응용 프로그램의 진단 로깅을 위해 PostSharp 5.0.35를 처음 사용하고 있습니다. 나는 Program.Main()
에 나와있는 예제 코드를 추가하고 Initialise
방법이라고했습니다ApplyToStateMachine은 어떻게 설정합니까?
using PostSharp.Patterns.Diagnostics;
using PostSharp.Patterns.Diagnostics.Backends.Log4Net;
using PostSharp.Extensibility;
[assembly: Log(
AttributePriority = 1,
AttributeTargetMemberAttributes = MulticastAttributes.Protected | MulticastAttributes.Internal | MulticastAttributes.Public
)]
[assembly: Log(
AttributePriority = 2,
AttributeExclude = true,
AttributeTargetMembers = "get_*"
)]
class AspectInitialiser
{
public void Initialise()
{
LoggingServices.DefaultBackend = new Log4NetLoggingBackend();
}
}
코드 인해 .NET 프레임 워크 4.0 프로젝트 async
방법을 가지는 코드에 다음과 같은 오류 메시지를주고 컴파일되지 않습니다.
비동기 상태 시스템에 기능을 적용하는 것은 현재 대상 프레임 워크에서 지원되지 않습니다. 비동기 메소드에 애스펙트를 적용 할 때는 ApplyToStateMachine 속성을 false로 설정하십시오.
괜찮 았지만이 ApplyToStateMachine
속성은 어디에 있습니까? 찾을 수있는 유일한 문서는 부동산이 이미 어디에 있는지 알고 있다고 가정합니다.
읽기 [페이지 (http://support.sharpcrafters.com/discussions/problems/1753-why-do-i-get-the-warning-the-aspect- 당신이 설정하지 않는 한 비 직관적 인 방식으로 행동 할 수 있습니다.) 그리고 [이 답변] (https : // 28965548 /attributetargetelements-multicasttargets-method-isnt-respected). –
@KeyurPATEL,'ApplyToStateMachine'는'LogAttribute' 또는 그 수퍼 클래스의 멤버가 아닙니다. –
사용자 정의 로깅을 개발할 수 있습니다. [여기를 참조하십시오] (https://stackoverflow.com/a/39929873/6741868). –