У меня есть класс, который получен из абстрактного класса. Получение типа производного класса Я хочу узнать, какие свойства наследуются от абстрактного класса и которые были объявлены в производном классе.
public abstract class BaseMsClass
{
public string CommonParam { get; set; }
}
public class MsClass : BaseMsClass
{
public string Id { get; set; }
public string Name { get; set; }
public MsClass()
{ }
}
var msClass = new MsClass
{
Id = "1122",
Name = "Some name",
CommonParam = "param of the base class"
};
Итак, я хотел бы быстро узнать, что CommonParam является унаследованным параметром, а Id, Name - это параметры, объявленные в MsClass. Любые предложения?
Попытка использования объявленного только флага возвращает мне пустой массив PropertyInfo
Type type = msClass.GetType();
type.GetProperties(System.Reflection.BindingFlags.DeclaredOnly)
-->{System.Reflection.PropertyInfo[0]}
Однако GetProperties() возвращает все свойства иерархии наследования.
type.GetProperties()
-->{System.Reflection.PropertyInfo[3]}
-->[0]: {System.String Id}
-->[1]: {System.String Name}
-->[2]: {System.String CommonParam}
Я что-то пропустил?