Иногда я хочу знать, есть ли у объекта свойство, которое я ищу, но иногда у объекта много свойств, и может потребоваться некоторое время, чтобы найти его для отладки.Было бы хорошо, если бы я мог написать функцию, которая найдет все свойства и ее значения в строке, тогда я могу вставить эту строку, например, в блокнот и найти нужное значение с помощью функции поиска, которая есть в блокноте.Пока у меня есть что-то вроде этого:
public void getAllPropertiesAndSubProperties(System.Reflection.PropertyInfo[] properties)
{
foreach (var a in properties)
{
//MessageBox.Show(a.ToString());
// do something here to test if property a is the one
// I am looking for
System.Reflection.PropertyInfo[] temp = a.GetType().GetProperties();
// if property a has properties then call the function again
if (temp.Length > 0) getAllPropertiesAndSubProperties(temp);
}
}
Редактирование вопроса, над которым я работал:
До сих пор я добавил следующий код.Я могу передать любой объект, который я хочу, в следующий метод, и я могу видеть все свойства.У меня возникают проблемы при просмотре значений свойств
![public void stackOverex(dynamic obj)
{
// this is the string where I am apending all properties
string stringProperties = "";
Type t = obj.GetType();
List<PropertyInfo> l = new List<PropertyInfo>();
while (t != typeof(object))
{
l.AddRange(t.GetProperties());
t = t.BaseType;
var properites = t.GetType().GetProperties();
foreach (var p in properites)
{
string val = "";
try
{
val = obj.GetType().GetProperty(p.Name).GetValue(obj, null).ToString();
}
catch
{
}
stringProperties += p.Name + " - " + val + "\r\n";
}
}
MessageBox.Show(stringProperties);
}
Да, отладчик Visual Studio великолепен, но посмотрите, сколько свойств может иметь объект.Я на самом деле ищу свойство indexSomething gridViewColumnHeader. Я не помню точное имя, я просто помню, я использовал его раньше.У меня есть событие, которое срабатывает при нажатии на столбец, и я хотел бы знать индекс, а не имя «столбец номер 2? Или 3 был нажат».Я знаю, что могу получить его с именем, но было бы хорошо, если бы я мог реализовать эту функцию отладчика.Посмотрите, как это сложно, на картинке ниже.