2010-06-16 5 views
1

Я делал это в прошлом году и так успешно. На этот раз я страдаю от упущений амнезии.Получение полей класса с помощью отражения

Итак, я просто пытаюсь получить поля на объекте. Это сложная и глупая часть кода, которую я пишу в тестовом решении, прежде чем сделать что-то действительно полезное в производственном коде.

Странно, метод GetFieldsOf сообщает массив нулевой длины в классе «Amazing». Помогите.

class Amazing 
{ 
    private NameValueCollection _nvc; 
    protected NameValueCollection _myDict; 
} 


private static FieldInfo[] GetFieldsOf(string className, 
     string nameSpace = "SomeReflection") 
    { 
     Type t; 

     return (t = Assembly.GetExecutingAssembly().GetType(
      string.Format("{0}.{1}", nameSpace, className) 
      )) == null ? null : t.GetFields(); 
    } 

ответ

2

Посмотрите на BindingFlags.
Попробуйте установить как минимум BindingFlags.Instance | BindingFlags.NonPublic в свой GetFields() звонок.

+0

Cheers. Ты мужчина! –

Смежные вопросы