2009-12-16 54 views
0

可能重複:
How do I get the name of a property from a property in C# (2.0)這是可能在C#GetStringName(o.Property)或o.Property.GetPropertyStringName()?

我需要一些方法是會得到屬性的字符串名稱,我不知道這是否可能在C#中,是什麼呢?在C#

+0

http://stackoverflow.com/questions/388775/how-do-i-property-in-c-2-0 – Dolphin

+0

http://stackoverflow.com/questions/491429/how -to-get-the-propertyinfo-of-specific-property –

回答

0

使用表達式樹3和.NET 3.5,你可以做一些事情接近

GetStringName(() => o.Property) 

,或者您可以使用匿名類型和反思:

GetStringName(new { o.Property }) 

但都有點哈克。 (我有一個blog post與後者的例子,雖然有一個略有不同的目的,但它表明了總體思路。)如果您可以告訴我們更多關於爲什麼您需要知道這一點,我們可能能夠更好地爲您提供建議。

-1

如果你想獲得所有屬性名稱作爲字符串數組,你可以這樣做:

Type myClassType = myClass.GetType(); //get your class type 
PropertyInfo[] myClassProps = myClassType.GetProperties(); 

然後,您可以通過他們循環

string namesAndValues; 
foreach(PropertyInfo prop in myClassProps){ 
    namesAndValues += "Property Name: " + prop.Name + ", Value: " + prop.GetValue(myClass, null).ToString(); 
} 
+0

-1不是他所問的 –