[英]How get properties for a inherits class
我有一個繼承EntityBase
的Person
類:
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
值記錄如下:
指定僅應考慮在提供的類型的層次結構級別聲明的成員。 不考慮繼承的成員。
創建一個新類,例如PersonTemplate,它只有FirstName和LastName屬性。 然后:
public PersonTemplate (Person p)
{
FirstName = p.FirstName;
LastName = p.LastName;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.