PostSharp 3.1에서 CompileTimeInitialize
에 리플렉션을 사용할 수 있습니까?Refresh를 PostSharp 3.1의 CompileTimeInitialize에서 사용할 수 있습니까?
다음 코드는 3.0에서 일 :
public class TestClass
{
public string TestField;
[TestAspect]
public void TestMethod() { }
}
public class TestAspect : OnMethodBoundaryAspect
{
private LocationInfo locationInfo;
public override void CompileTimeInitialize(MethodBase method, AspectInfo aspectInfo)
{
this.locationInfo = new LocationInfo(method.ReflectedType.GetField("TestField"));
}
public override void OnSuccess(MethodExecutionArgs args)
{
Console.WriteLine(this.locationInfo);
}
}
을 3.1 업그레이드를 통해, this.locationInfo
이 Missing Property
되고 속성 중 하나가 NullReferenceException
의 원인에 접근.
잘못된 방법으로 수행했거나 3.1 업그레이드에서 변경 되었습니까? 그렇다면 올바른 접근 방식을 제안 해주세요.
추신 : this.locationInfo
을 RuntimeInitialize
에 설정하면 정상적으로 작동합니다.
감사합니다. 이제 나는 그것이 내 편이 아니라는 것을 알고있다. PostSharp 포럼에보고 해 드리겠습니다. –