这可以<Attributes>
在类扩展中的方法上使用吗?
这是A类
Public Class Goblin
Inherits Monster
Enum goblinsRole
Chief
Grount
End Enum
Public Property name As String
Public Property role As goblinsRole
Private healthPoints As Integer
Public Sub New(into As Integer)
healthPoints = into
End Sub
Public Sub hitBy(damage As Integer)
<...>
End Sub
<ValidationMethod()>
Public Function checkByTheWitchDoctor()
<...>
End Function
<ValidationMethod()>
Public Function isAlive()
<...>
End Function
End Class
这是此类 A 的扩展
Module ModuleExtension
<ValidationMethod()>
<Extension()>
Public Sub PrintDateOfDeath(ByVal aGoblin As DomainModelFake.Goblin)
<...>
End Sub
<Extension()>
<ValidationMethod()>
Public Function smashedByAGrount(ByVal aGoblin As DomainModelFake.Goblin) As Boolean
<...>
End Function
End Module
当我使用反射来获取使用此属性标记的方法时,我只获取位于 A 类定义中的方法列表,而不获取位于扩展中的方法列表。
概括地说,这意味着我只看到:
- checkByTheWitchDoctor()
- 活着()
但我没有看到:
- PrintDateOfDeath()
- 粉碎ByAGrount()
这是反射的正常行为吗?它不搜索扩展名?