Как я могу прочитать свойства объекта, который содержит элемент массива, используя отражение в C#. Если у меня есть метод GetMyProperties, и я определяю, что объект является настраиваемым типом, то как я могу прочитать свойства массива и значения внутри. IsCustomType - это метод, который определяет, является ли тип настраиваемым или нет.Использование свойств отражения чтения объекта, содержащего массив другого объекта
public void GetMyProperties(object obj)
{
foreach (PropertyInfo pinfo in obj.GetType().GetProperties())
{
if (!Helper.IsCustomType(pinfo.PropertyType))
{
string s = pinfo.GetValue(obj, null).ToString();
propArray.Add(s);
}
else
{
object o = pinfo.GetValue(obj, null);
GetMyProperties(o);
}
}
}
сценарий, у меня есть объект ArrayClass и ArrayClass имеет два свойства:
-string Id
-DeptArray[] depts
DeptArray другой класс с 2-мя свойствами:
-string code
-string value
Итак, это методы получает объект ArrayClass. Я хочу прочитать все свойства сверху вниз и сохранить пару имени/значения в элементе словаря/списка. Я могу сделать это для значения, custom, enum type. Я застрял с массивом объектов. Не знаете, как это сделать.
Привет, я не вижу из вашего кода то, чего вы пытаетесь достичь. Код не компилируется, поскольку pInfo.GetValue возвращает объект, а не строку. – Adam
Извините. Я редактировал код для добавления ToString() в pInfo.GetValue(). Мне пришлось сделать этот метод. Первоначально метод имеет некоторую сложную логику. Чтобы упростить, мне нужно прочитать все свойства, свойство свойства и их значение. –