使用Reflection发现对象属性列表

0 c# reflection

我已经尝试了两天找到一些有用的东西,但我找到的所有例子都没有.

我需要的是能够从实例化的类中获取公共属性列表.

例如:

MyClass具有以下定义:

public class MyClassSample : MyDC
{
  public string ReportNumber = "";
  public string ReportDate = "";

  public MyClassSample()
  {
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要的是一种从上面的类中简单地返回一个包含["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";
    }
Run Code Online (Sandbox Code Playgroud)

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

Tej*_*ejs 6

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

所以你可以这样做:

FieldInfo[] fields = t.GetFields();
Run Code Online (Sandbox Code Playgroud)

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

public string ReportNumber { get; set; }
public string ReportDate { get; set; }
Run Code Online (Sandbox Code Playgroud)