我对Postsharp有疑问。
我有这个:
[Serializable]
public class MethodConnectionTracking: OnExceptionAspect
{
public override void OnException(MethodExecutionArgs args)
{
base.OnException(args);
}
}
我这样用过。在assemblyInfo.cs中:
[assembly: MethodConnectionTracking]
因此,当程序集中发生异常时,它会执行OnException方法。但是,当我调试方法并且我看args(类型:MethodExecutionArgs)时,每个属性都有一个空值。 args.Exception为null。我需要异常类型..
任何人都知道如何解决这个问题?
提前致谢
答案 0 :(得分:4)
答案是因为PostSharp发现你没有使用任何这些属性,所以它实现了优化,不对这些属性做任何事情。这就是调试时它们为null的原因。更改您的方面以匹配以下ocde然后尝试再次调试
[Serializable]
public class MethodConnectionTracking: OnExceptionAspect
{
public override void OnException(MethodExecutionArgs args)
{
Exception e = args.Exception;
}
}
你可以在这里找到确切原因:http://programmersunlimited.wordpress.com/2011/08/01/postsharp-why-are-my-arguments-null/