我有一个Person
继承的类,PersonBase
第二个类继承EntityBase
:
public class Person : PersonBase
{
virtual public string FirstName { get; set; }
virtual public string LastName { get; set; }
}
和
public class PersonBase : EntityBase
{
virtual public string GroupName { get; set; }
}
和
public class EntityBase : IEntity
{
public virtual long Id { get; protected set; }
public virtual string Error { get; protected set; }
}
我需要获取属性Person
和PersonBase
类的列表:
var entity = preUpdateEvent.Entity;
foreach (var item in entity.GetType().GetProperties()) //only FirstName & LastName & GroupName
{
if (item.PropertyType == typeof(String))
item.SetValue(entity, "XXXXX" ,null);
}
现在GetProperties()
是包括:FirstName, LastName, GroupName, Id, Error
但我只需要自己的 Person 属性,即:FirstName, LastName, GroupName
当然,我在下面的代码中使用过,但它不适合我,因为它只包含Person
类的属性。
var properties = typeof(Person).GetProperties(BindingFlags.Public |
BindingFlags.Instance |
BindingFlags.DeclaredOnly);
如何获取仅在Person
和PersonBase
类上定义的属性?