Nếu tôi có một cái gì đó như:PropertyInfo SetValue và null
object value = null;
Foo foo = new Foo();
PropertyInfo property = Foo.GetProperties().Single(p => p.Name == "IntProperty");
property.SetValue(foo, value, null);
Sau đó foo.IntProperty
được thiết lập để 0
, mặc dù value = null
. Dường như nó đang làm một cái gì đó như IntProperty = default(typeof(int))
. Tôi muốn ném một số InvalidCastException
nếu IntProperty
không phải là loại "không thể sử dụng" (Nullable<>
hoặc tham chiếu). Tôi đang sử dụng Reflection, vì vậy tôi không biết loại trước thời hạn. Tôi sẽ đi đâu để tới đó?
Vậy đó. Tôi đã rối tung với .PropertyType.IsClass, nhưng đã không nhận được rất xa. –