Если у меня есть что-то вроде:
object value = null;
Foo foo = new Foo();
PropertyInfo property = Foo.GetProperties().Single(p => p.Name == "IntProperty");
property.SetValue(foo, value, null);
Затем foo.IntProperty
устанавливается в 0
, хотя value = null
. Кажется, что он делает что-то вроде IntProperty = default(typeof(int))
. Я хотел бы добавить InvalidCastException
, если IntProperty
не является "нулевым" типом (Nullable<>
или ссылкой). Я использую Reflection, поэтому я не знаю тип раньше времени. Как я могу это сделать?