我有一个继承 PersonEntityBase 类:

public class Person : EntityBase
{
   virtual public string FirstName { get; set; }
   virtual public string LastName { get; set; }
   virtual public IList<Asset> Assets { get; set; }

}


public class EntityBase : IEntity
{
   public virtual long Id { get; protected set; }
   public virtual string Error { get; protected set; }
}

我需要获取 self Person 类的属性列表:
var entity = preUpdateEvent.Entity;

foreach (var item in entity.GetType().GetProperties()) //only FirstName & LastName
{
   if (item.PropertyType == typeof(String))
      item.SetValue(entity, "XXXXX" ,null);
}

现在 GetProperties() 包括:FirstName, LastName, Id, Error 但我只需要拥有 Person 属性,即:FirstName, LastName
如何获取仅在 Person 上定义的属性?

最佳答案


var properties = typeof(Person).GetProperties(BindingFlags.Public |
                                              BindingFlags.Instance |
                                              BindingFlags.DeclaredOnly);
DeclaredOnly 值是这样的 documented:

关于c# - 如何获取继承类的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8624037/

10-11 23:00
查看更多