継承するPerson
クラスがPersonBase
あり、この2番目のクラスが継承し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()
は include です:FirstName, LastName, GroupName, Id, Error
しかし、私は自分の Person プロパティのみが必要です:FirstName, LastName, GroupName
もちろん、以下のコードで使用されていますが、Person
クラスのプロパティのみが含まれているため、私には適していません。
var properties = typeof(Person).GetProperties(BindingFlags.Public |
BindingFlags.Instance |
BindingFlags.DeclaredOnly);
クラスでのみ定義さPerson
れているプロパティを取得するにはどうすればよいですか?PersonBase