使用反射发现对象属性列表
本文关键字:属性 列表 对象 发现 反射 | 更新日期: 2023-09-27 18:34:17
我已经尝试了 2 天来找到有用的东西,但我找到的示例都没有工作。
我需要的是能够从实例化类中获取公共属性的列表。
例如:
MyClass 有以下定义:
public class MyClassSample : MyDC
{
public string ReportNumber = "";
public string ReportDate = "";
public MyClassSample()
{
}
}
我需要的是一种简单地从上述类返回一个包含 ["ReportNumber"]["ReportDate"] 的数组的方法。
这是我最近的尝试,只是将属性名称添加到字符串中:
string cMMT = "";
Type t = atype.GetType();
PropertyInfo[] props = t.GetProperties();
List<string> propNames = new List<string>();
foreach (PropertyInfo prp in props)
{
cMMT = cMMT + prp.Name + "'n";
}
我想我错过了一些基本和简单的东西,但由于某种原因,我现在看不到它。 任何帮助将不胜感激。
这些不是属性。这些是领域。
所以你可以这样做:
FieldInfo[] fields = t.GetFields();
或者,您可以将这些更改为属性:
public string ReportNumber { get; set; }
public string ReportDate { get; set; }
更改此设置
public string ReportNumber = "";
public string ReportDate = "";
对此
public string ReportNumber { get; set; }
public string ReportDate { get; set; }
然后
List<string> propNames = new List<string>();
foreach (var info in atype.GetType().GetProperties())
{
propNames.Add(info.Name);
}
结果将是一个列表(propName),其中包含两个位置以及您的属性名称