【发布时间】:2019-03-09 18:49:36
【问题描述】:
我希望从派生类中获取属性列表 我写了一个函数,给我一个属性列表。 我的问题是我希望属性列表包含基类的第一个属性和派生类的属性 我怎样才能做到这一点?现在我得到了派生的第一个属性,然后是基数
PropertyInfo[] props = typeof(T).GetProperties();
Dictionary<string, ColumnInfo> _colsDict = new Dictionary<string, ColumnInfo>();
foreach (PropertyInfo prop in props)
{
object[] attrs = prop.GetCustomAttributes(true);
foreach (object attr in attrs)
{
ColumnInfo colInfoAttr = attr as ColumnInfo;
if (colInfoAttr != null)
{
string propName = prop.Name;
_colsDict.Add(propName, colInfoAttr);
}
}
}
【问题讨论】:
-
嗯...我认为您需要先提取基类,获取它的属性并添加其余部分。意识到;属性可以是“新的”,基类可以有一个基类。
-
提取基类字段后如何提取派生类的剩余字段?
-
有
Reverse()方法 -
但这将恢复我的所有属性,我不希望基类首先按其顺序出现,然后按其顺序派生字段
-
我可能错过了重点。如果BaseType存在,你不能使用Type.BaseType来获取基类并从中获取属性吗?
标签: c# inheritance reflection properties derived-class