If I have something like:
object value = null;
Foo foo = new Foo();
PropertyInfo property = Foo.GetProperties().Single(p => p.Name == \"IntProperty\");
prope
If you have the PropertyInfo
, you can check the .PropertyType
; if .IsValueType
is true, and if Nullable.GetUnderlyingType(property.PropertyType)
is null, then it is a non-nullable value-type:
if (value == null && property.PropertyType.IsValueType &&
Nullable.GetUnderlyingType(property.PropertyType) == null)
{
throw new InvalidCastException ();
}