假设我有一个包含两个公共属性的类,一个定义了getter,另一个是auto实现的属性(在内部创建了getter / setter)
Public ReadOnly Property PendingAdd As String
Get
Return m_pendingadd
End Get
End Property
'Auto Implemented Property
Public AuditorName As String
使用反射并调用GetProperties()时,我只获取定义了Get
的属性,不会返回自动实现的属性。 如何使用反射获取这两个属性?
Dim lobjSiteType As Type = Me.GetType()
For Each pi As System.Reflection.PropertyInfo In lobjSiteType.GetProperties(System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Instance
'Do stuff
Next
答案 0 :(得分:0)
Public AuditorName As String
不是property
它是一个类变量。
这是VB.NET中的一个自动属性:
Property YourProperty As String
答案 1 :(得分:0)
如果属性至少有一个公共访问者,则该属性被视为公开反映。否则,该属性被视为私有,您必须使用BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static(在Visual Basic中,使用Or组合值)来获取它。
http://msdn.microsoft.com/en-us/library/kyaxdd3x%28v=vs.110%29.aspx