如何确定某个类是否使用特定属性进行修饰

时间:2010-02-10 17:09:18

标签: vb.net attributes

我正在尝试确定界面是否使用特定属性进行修饰。例如,我有以下界面:

<MyCustomAttribute()> _
Public Interface IMyInterface
    Function Function1
    Sub DeleteWorkflowInstanceMap(ByVal instanceId As Guid)
    Sub InsertWorkflowInstanceMap(ByVal instanceId As Guid, ByVal aliasName As String)
End Interface

如何确定IMyInterface是否使用MyCustomAttribute属性进行修饰?

3 个答案:

答案 0 :(得分:7)

GetCustomAttributes更好的是共享方法IsDefined

Attribute.IsDefined(GetType(IMyInterface), GetType(MyCustomAttribute))

答案 1 :(得分:3)

GetType(IMyInterface).GetCustomAttributes(GetType(MyCustomAttribute), false).Length > 0

(我希望我的VB语法正确。)基本上得到一个表示IMyInterface的Type,然后在它上面调用GetCustomAttributes传递你感兴趣的属性类型。如果返回一个非空数组,则该属性存在

答案 2 :(得分:0)