我正在使用 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 属性类进行注释。