postsharp exception为null

时间:2011-08-01 18:25:16

标签: c# postsharp

我对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。我需要异常类型..

任何人都知道如何解决这个问题?

提前致谢

1 个答案:

答案 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/