2016-04-12 71 views
1

我需要根據其名稱的字符串值調用類的公共屬性,因爲直到運行時我纔會知道需要哪些屬性。我試圖使用反射不成功。這個類看起來是這樣的:基於其名稱的字符串調用屬性

class FieldCalculation 
{ 
    public string MyValue 
    { 
     get 
     { 
      return "Test Data"; 
     } 
    } 
} 

我想訪問該屬性的值應該是這個樣子:

FieldCalculation myClass = new FieldCalculation(); 
string value = myClass.GetType().GetProperty("MyValue"); 

任何幫助,將不勝感激。

+3

的可能的複製[獲得從使用C#反射字符串屬性值](http://stackoverflow.com/questions/1196991/get-property-value-from-string-using -ref-in-c-sharp) – NineBerry

+0

是的,我想這是重複的。但我確實發現將FieldCalculation類的定義分開是有用的,因爲我沒有意識到必須傳遞給GetValue方法 – CorribView

回答

3

你已經差不多了。你正在做的是得到屬性定義。您需要讓該財產爲您提供價值,並將其傳遞給實例。這是工作的代碼:

FieldCalculation myClass = new FieldCalculation(); 
string value = (string)myClass.GetType().GetProperty("MyValue").GetValue(myClass); 
相關問題