Получение полей класса через отражение - PullRequest
1 голос
/ 16 июня 2010

В прошлом я делал это миллион раз, и это успешно. На этот раз я страдаю от амнезии.

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

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

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();
    }

1 Ответ

2 голосов
/ 16 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...