Я хотел бы использовать отражение, чтобы исследовать частные поля объекта, а также получить значения в этих полях, но мне сложно найти синтаксис для него.
Например, у объекта есть 6 частных полей, я полагаю, что я мог бы получить их FieldInfo с чем-то вроде
myObject.GetType().GetFields(BindingFlags.NonPublic)
но без кубиков - вызов возвращает массив из 0.
Каков правильный синтаксис для доступа к полям?
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static
Вы переопределили флаги по умолчанию, поэтому вам нужно добавить Instance
обратно...
myObject.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
Вы также должны добавить BindingFlags.Instance
myObject.GetType().GetFields(BindingFlags.NonPublic|BindingFlags.Instance)
Поскольку вы хотите получить оба поля и значения:
from field in myObject.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance)
select new
{
Field = field,
Value = field.GetValue(myObject)
};