繁体   English   中英

使用反射来发现对象属性列表

[英]Using Reflection to discover an objects property list

我已经尝试了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),该列表具有两个与您的属性名称相同的位置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM