Использование отражения чтения свойств объекта, содержащего массив другого объекта

Как я могу прочитать свойства объекта, который содержит элемент типа массива, используя отражение в 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 - это еще один класс с двумя свойствами:

-string code 
-string value

Итак, это методы получает объект ArrayClass. Я хочу прочитать все свойства сверху вниз и сохранить пару имя / значение в элементе словаря / списка. Я могу сделать это для значения, индивидуального, перечисляемого типа. Я застрял с массивом объектов. Не знаю, как это сделать.

12
задан Sri Reddy 2 February 2011 в 20:07
поделиться