0

我已经尝试了 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";
    }

我想我错过了一些基本而简单的东西,但由于某种原因,我现在看不到它。任何帮助,将不胜感激。

4

2 回答 2

6

那些不是属性。那些是领域。

所以你可以这样做:

FieldInfo[] fields = t.GetFields();

或者您可以将它们更改为属性:

public string ReportNumber { get; set; }
public string ReportDate { get; set; }
于 2012-05-16T15:52:14.103 回答
1

改变这个

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),其中有两个位置与您的属性名称

于 2012-05-16T16:00:18.143 回答