Размышления о свойствах самого высокого уровня
class CBase
{
object A {get;set;}
object B {get;set;}
}
class CDerived : CBase
{
object X {get;set}
object Y {get;set;}
}
Я пытаюсь получить свойства первого уровня. Для приведенного выше примера предполагаемыми свойствами являются X и Y, а не A и B. С помощью следующего кода я получаю все свойства {A,B,X,Y}. Есть ли какое-либо решение без подписи атрибута.
foreach (var propertyInfo in typeof(CDerived).GetProperties())
{
propertyInfo.SetValue(model, row[propertyInfo.Name], null);
}
1 ответ
Решение
Попробуйте использовать DeclaredOnly
обязательный флаг в вашем GetProperties
вызов. Это должно ограничивать возвращаемые свойства указанным уровнем наследования (класса).