2012-05-16 99 views
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"; 
    } 

我想我失去了一些東西基本和簡單的,但由於某種原因,我不能看到它現在。任何幫助,將不勝感激。

+2

的名字兩個位置,我建議你學習字段和屬性之間的區別你潛入反射之前;) –

+0

請再讀這篇文章如何處理與字符串http://www.dotnetperls.com/convert-list-string –

回答

6

那些不屬性。那些是田野。

所以,你可以這樣做:

FieldInfo[] fields = t.GetFields(); 

或者你可以改變這些成屬性:

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

這解決了它......謝謝! –

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)與你的屬性

相關問題