2016-04-12 2 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 -reflection-in-c-sharp) – NineBerry

+0

Да, я думаю, это дубликат. Но мне было полезно отделить определение класса FieldCalculation, поскольку я не понимал, что именно это должно было быть передано в метод GetValue – CorribView

ответ

3

У вас его почти не было. Что вы делали, так это получение недвижимости. Вам нужно попросить это свойство получить вам значение, и вы передадите ему экземпляр. Это рабочий код:

FieldCalculation myClass = new FieldCalculation(); 
string value = (string)myClass.GetType().GetProperty("MyValue").GetValue(myClass); 
Смежные вопросы