考慮下面的示例代碼:「鑄造」與反思
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例如,通過反射表示的類型?
這個工作對我來說,很清楚的解釋,謝謝 – 2017-11-10 01:13:48