【发布时间】:2012-12-17 17:58:25
【问题描述】:
我正在使用 PostSharp 来捕获在我的系统中生成的所有异常,其类为 OnMethodBoundaryAspect。它工作正常,但如果我需要在某些继承的类中获取异常,我在 VB.NET 中找不到解决方案。
MulticastAttributeUsageAttribute 类有一个带有一个 validOn 属性的构造函数,我只能设置 MultcastTargets。该类有一个名为Inheritance 的公共属性,但如果我在构造函数中设置它,它就没有效果。下面举个例子:B类继承了A类,A类中标注了属性Aspect,我需要A类能自动看到B类。
我该如何解决这个问题?
代码
<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 属性类进行注释。
【问题讨论】:
标签: .net vb.net inheritance postsharp