Динамически конвертировать двойной? в PropertyInfo.PropertyType? - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь динамически преобразовать double? в тип свойства PropertyInfo, который может быть int? или decimal?, и, возможно, других типов в будущем. Явный актерский состав работает, но тогда мне нужно что-то вроде:

if(prop.PropertyType == typeof(int?))
{
    prop.SetValue(obj, (int?)value);
}
else if(prop.PropertyType == typeof(decimal?))
{
    prop.SetValue(obj, (decimal?)value);
}
// etc...

Я подумал об использовании Dictionary<Type, Action<...>>, содержащем действия для выполнения приведений, но я ищу что-то еще более элегантное. Есть ли одна строка кода, которую я могу написать для динамического преобразования в тип свойства? Что-то вроде этого, которое выдает InvalidCastException:

prop.SetValue(obj, Convert.ChangeType(value, prop.PropertyType));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...