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

change this

public string ReportNumber = "";
public string ReportDate = "";

to this

public string ReportNumber { get; set; }
public string ReportDate { get; set; }

and then,

List<string> propNames = new List<string>();

foreach (var info in atype.GetType().GetProperties())
{
   propNames.Add(info.Name);
}

The result wold be a list (propName) with two positions with the name of your properties

于 2012-05-16T16:00:18.143 に答える