Вы не используете отражение, просто свойство "Свойства" вашего объекта.Я считаю, что это более точно соответствует тому, что делает Debug.Print:
Public Sub WriteAsDebug(ByVal obj As Object)
For Each prop In obj.GetType.GetProperties()
WriteLine("{0}: {1}", prop.Name, prop.GetValue(obj, Nothing).ToString)
Next
End Sub
Этот метод получает (путем отражения) все открытые свойства, определенные в типе объекта, и записывает имя свойства и значение (To String) в конкретном экземпляре объекта.Отказ от ответственности, я почти уверен, что этот метод терпит неудачу при попытке получить доступ к индексированным свойствам (свойства с параметрами).
Я не уверен, что Debug.Print также сообщает только об открытых членах, если требуется больше членов, проверьтеПараметры BindingFlags для метода GetProperties .Вы также можете получить дополнительную информацию о типе PropertyInfo , который возвращает метод.
Однако используемое свойство Properties может давать данные, не включенные в свойства класса (чтоОтладка. Печать дает).