2012-12-03 166 views
-2

如何獲取屬性名稱作爲字符串?如何通過c中的反射獲得屬性名稱#

例如:

Public int PropertyValue{get;set;} 

現在我想要得到的PropertyValue與出反射的字符串,並與出的foreach的PropertyInfo

+1

爲什麼你不想使用反射? – ryadavilli

+0

如果我使用反射,我可以獲得產權的所有元數據 –

+0

您可以發佈一個最小的僞代碼,這會給我們一些上下文嗎? – Dennis

回答

1

我在這裏找到了解決方案: Workaround for lack of 'nameof' operator in C# for type-safe databinding?

凡@ reshefm有這樣的代碼:

class Program 
{ 
    static void Main() 
    { 
     var propName = Nameof<SampleClass>.Property(e => e.Name); 

     Console.WriteLine(propName); 
    } 
} 

public class Nameof<T> 
{ 
    public static string Property<TProp>(Expression<Func<T, TProp>> expression) 
    { 
     var body = expression.Body as MemberExpression; 
     if(body == null) 
      throw new ArgumentException("'expression' should be a member expression"); 
     return body.Member.Name; 
    } 
} 

希望這有助於:)

相關問題