2013-05-20 49 views
0

我想寫一個通用方法,它接受任何類型的類對象併爲該對象的所有屬性返回一個keyValuepair。返回字典的所有屬性的通用方法

public Dictionary<string,string> GetProperties(T classObj) 
{ 
} 

對此的任何幫助將是非常偉大的。

+0

你有沒有看使用反射? – Romoku

+0

嘗試通過反射來獲取所有屬性。在這種情況下,字典中的關鍵字是什麼,希望你計劃使用propertyNames。看看:http://stackoverflow.com/questions/4020041/reflection-class-to-get-all-properties-of-any-object – Saravanan

+0

嘗試反射,檢查此(可能的重複)http:// stackoverflow。 com/questions/2762531/c-sharp-reflection-and-getting-properties – Mzf

回答

2

使用反射:

public Dictionary<string, object> GetProperties<T>(T classObj) 
{ 
    return typeof(T).GetProperties() 
      .ToDictionary(p => p.Name, p => p.GetValue(classObj, null)); 
} 
+1

感謝您爲我工作..... – Abhash786

+3

您不需要在此使用泛型 - 「object classObj」就足夠了。另外,如果你提供了'GetProperties ',但是使用'typeof(T)',你可能會錯過屬性,而是傳遞擴展'BaseClass'的對象來代替使用'classObj.GetType()'。 –

+1

@TrevorPilley相反,我認爲這是一個很好的選擇。 – I4V