创建了一个简单的类来测试PostSharp中的OnExceptionAspect。
[Serializable]
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
public class ExceptionSwallower : OnExceptionAspect
{
public override void OnException(MethodExecutionEventArgs eventArgs)
{
eventArgs.FlowBehavior = FlowBehavior.Return;
base.OnException(eventArgs);
}
}
将属性添加到方法
[ExceptionSwallower]
public void SomeMethod()
{
throw new Exception();
}
并调用它。
然而,实际上并没有吞下异常,这似乎很奇怪。
我一直无法找到任何类似的问题,所以我希望有一些小问题我没有做对。任何人?
答案 0 :(得分:3)
您可以检查构建输出: 它可以给出一些暗示是否涉及后处理,例如: POSTSHARP:postharp警告PS0131:模块'YourAssembly.dll'不包含任何方面或其他转换。为了提高构建时性能,请考虑通过在项目中设置编译符号(也称为常量)'SkipPostSharp'来禁用此模块的PostSharp,或者设置MSBuild属性'SkipPostSharp = True'。 :消息:PostSharp完成 - 0个错误,1个警告,在1637毫秒服务
答案 1 :(得分:0)
有时使用Reflector查看生成的程序集会有所帮助。 PostSharp生成普通的.NET程序集,没有任何魔力。