Подтвердить что ты не робот

Как преобразовать значение строки в имя свойства объекта

Это мой первый раз, когда я должен сделать что-то подобное в С#/.NET и несколько напоминаю мне, что можно легко сделать в JavaScript с помощью функции eval() или динамического сценария и создания HTML. У меня есть строка, взятая из пользовательского ввода, скажем string input = "foo". Теперь я хотел бы использовать значение "foo" как имя свойства для объекта, который у меня есть, скажем cover таким образом:

string input = "foo";
//magic to convert string value to be used
//as a object property name goes here maybe...
var success = cover.foo;

Есть ли способ на С#, который я могу сделать? Возможно, используя отражение? Я пробовал, но меня всегда возвращают с объектом, который на самом деле не решает мою проблему.

4b9b3361

Ответ 1

Отражение - это правильный инструмент:

PropertyInfo pinfo = typeof(YourType).GetProperty("YourProperty");
object value = pinfo.GetValue(YourInstantiatedObject, null);