Я хотел бы обновить все свойства MyObject до другого с помощью Reflection. Проблема, с которой я вхожу, заключается в том, что конкретный объект наследуется от базового класса, а значения базового класса не обновляются.
Приведенный ниже код копирует значения свойств верхнего уровня.
public void Update(MyObject o)
{
MyObject copyObject = ...
FieldInfo[] myObjectFields = o.GetType().GetFields(
BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
foreach (FieldInfo fi in myObjectFields)
{
fi.SetValue(copyObject, fi.GetValue(o));
}
}
Я искал, есть ли какие-либо атрибуты BindingFlags, которые я мог бы использовать, но безрезультатно.