我有一个继承 Person
的 EntityBase
类:
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/