我有一个课程如下
Public Class Foo
Private _Name As String
<ShowInDisplay()> _
Public Property Name() As String
Get
Return _Name
End Get
Set(ByVal value As String)
_Name = value
End Set
End Property
Private _Age As String
Public Property Age() As String
Get
Return _Age
End Get
Set(ByVal value As String)
_Age = value
End Set
End Property
Private _ContactNumber As String
<ShowInDisplay()> _
Public Property ContactNumber() As String
Get
Return _ContactNumber
End Get
Set(ByVal value As String)
_ContactNumber = value
End Set
End Property
End Class
我只需要处理那些具有特定属性的属性,例如:ShowInDisplay
Public Sub DisplayOnlyPublic(ByVal Someobject As Foo)
For Each _Property As something In Someobject.Properties
If _Property.HasAttribute("ShowInDisplay") Then
Console.WriteLine(_Property.Name & "=" & _Property.value)
End If
Next
End Sub
答案 0 :(得分:2)
修改:更新了正确的VB GetType()
电话:
If _Property.IsDefined(GetType(ShowInDisplayAttribute), True) Then
答案 1 :(得分:0)
除了能够使用扩展方法/ lambdas(在c#中)使其更好之外,没有比在每个可用属性上使用MemberInfo.IsDefined更简单的方法。