C# позволяет относительно просто получить все публичные c свойства или получить значение свойства по имени .
Но как насчет * 1007? * настройка значений свойств? Для простого тестового приложения я хотел бы иметь возможность сделать что-то вроде этого псевдокода, который перечисляет publi c свойства для экземпляра класса, запрашивает у пользователя значения и устанавливает свойства на основе этих значений - преобразование из входных строк в свойство введите по мере необходимости:
for(Property p in typeof(instance))
{
s = ReadLine("Enter the value for {p.Name}, type {p.Type}");
SetPropertyValue(instance,p.Name, p.Type.parse(s));
}
Основная проблема, с которой я сталкиваюсь, которая затрудняет использование общего вспомогательного метода SetPropertyValue
, заключается в том, что Parse
не всегда существует. Это подходит для большинства базовых c типов, но не для string
, конечно, или для типов более высокого уровня.
Я не против, если произойдет сбой на типах, которые он не поддерживает, потому что мое использование в основном быть int
, short
, string
, byte
, и т. д. c, но как я могу использовать отражение, чтобы подбросить что-то для тестовых приложений в консольном режиме?