PostSharp OnExceptionAspect无法按预期工作

时间:2009-07-16 13:31:52

标签: postsharp

创建了一个简单的类来测试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();
    }

并调用它。

然而,实际上并没有吞下异常,这似乎很奇怪。

我一直无法找到任何类似的问题,所以我希望有一些小问题我没有做对。任何人?

2 个答案:

答案 0 :(得分:3)

您可以检查构建输出: 它可以给出一些暗示是否涉及后处理,例如: POSTSHARP:postharp警告PS0131:模块'YourAssembly.dll'不包含任何方面或其他转换。为了提高构建时性能,请考虑通过在项目中设置编译符号(也称为常量)'SkipPostSharp'来禁用此模块的PostSharp,或者设置MSBuild属性'SkipPostSharp = True'。   :消息:PostSharp完成 - 0个错误,1个警告,在1637毫秒服务

答案 1 :(得分:0)

有时使用Reflector查看生成的程序集会有所帮助。 PostSharp生成普通的.NET程序集,没有任何魔力。