Просто отфильтруйте результаты с теми, которые имеют CanWrite
как False
Dim items As PropertyInfo() = Me. _
GetType(). _
GetProperties(Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Public). _
Where(Function(x) Not x.CanWrite). _
ToArray() _
Обратите внимание, что в приведенном выше примере кода предполагается, что Visual Studio 2008
или выше, и требуется импорт System.Linq
. Если вы используете старую версию, вы можете сделать следующее
Dim props As PropertyInfo() = Me.GetType().GetProperties(Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Public)
Dim readOnlyProps As New List(Of PropertyInfo)
For Each cur in props
If Not cur.CanWrite Then
readOnlyProps.Add(cur)
End If
Next