1

我正在使用 PostSharp 来捕获系统中生成的所有异常,其中包含一个类OnMethodBoundaryAspect。它工作正常,但如果我需要在某些继承的类中获取异常,我在 VB.NET 中找不到解决方案。

该类MulticastAttributeUsageAttribute有一个具有一个validOn 属性的构造函数,我只能设置MultcastTargets。该类有一个名为 的公共属性Inheritance,但如果我在构造函数中设置它,它就没有效果。下面举个例子:类B扩展类A,属性aspect在类A中注解,我需要类B自动被aspect看到。

我该如何解决这个问题?

代码

<Serializable()> _
<AttributeUsage(AttributeTargets.Class)> _
<MulticastAttributeUsage(MulticastTargets.Method)> _
Public Class ExceptionsAttribute
    Inherits OnMethodBoundaryAspect

        Public Overrides Sub OnEntry(ByVal Args As PostSharp.Aspects.MethodExecutionArgs)
             MyBase.OnEntry(Args)
        End Sub

        Public Overrides Sub OnException(ByVal Args As PostSharp.Aspects.MethodExecutionArgs)
             MyBase.OnException(Args)
        End Sub

    End Class

    <Exceptions()> _
    Public Class A

        Public Sub MethodA()
        End Sub

    End Class

    Public Class B
        Inherits A

        Public Sub MethodB()
        End Sub

    End Class

类 A 由 Exception 属性类注解。B 类扩展了 A 类,那么我需要自动查看 B 类,而无需使用 Exception 属性类进行注释。

4

1 回答 1

1

解决了!!!我只需要直接设置属性,如:

<MulticastAttributeUsage(MulticastTargets.Method, Inheritance:=MulticastInheritance.Multicast)> 
于 2012-12-21T11:15:47.960 回答