Рассмотрим следующий пример кода:«литье» с отражением
class SampleClass
{
public long SomeProperty { get; set; }
}
public void SetValue(SampleClass instance, decimal value)
{
// value is of type decimal, but is in reality a natural number => cast
instance.SomeProperty = (long)value;
}
Теперь мне нужно сделать что-то подобное с помощью отражения:
void SetValue(PropertyInfo info, object instance, object value)
{
// throws System.ArgumentException: Decimal can not be converted to Int64
info.SetValue(instance, value)
}
Следует заметить, что я не могу предположить, что PropertyInfo всегда представляет собой длинный , и это значение всегда является десятичным. Тем не менее, я знаю, что значение может быть присвоено правильному типу для этого свойства.
Как преобразовать параметр «значение» в тип, представленный экземпляром PropertyInfo, посредством отражения?
это сработало для меня, очень четкое объяснение, спасибо –