我嘗試動態設置Nullable <>屬性。通過反射設置屬性Nullable <>
我把我的財產例如:
PropertyInfo property = class.GetProperty("PropertyName"); // My property is Nullable<> at this time So the type could be a string or int
我想通過反射像
property.SetValue(class,"1256",null);
設置我的財產,我的屬性是可空<>一般它不工作。所以我試圖找到一種方法來設置我的財產。
知道我執行
Nullable.GetUnderlyingType(property.PropertyType)
任何想法,我可空<>屬性的類型?
我嘗試創建我可空<>屬性的實例與
VAR nullVar = Activator.CreateInstance(typeof運算(可空<>)。MakeGenericType(新類型[] {Nullable.GetUnderlyingType(財產。財產種類) }));
但nullVar總是空
當您設置一個整數,而不是字符串是否行得通? '「1256」是一個字符串,不是一個整數。 – 2009-09-28 18:51:13
它會工作,但重點是我不知道可空屬性的類型。我可以使用Nullable.GetUnderlyingType(property.PropertyType)獲得類型 – 2009-09-28 18:57:09
'Nullable <>'不能使用'string'作爲基礎類型,因爲'string'是一個引用類型。換句話說'typeof(Nullable <>)。MakeGenericType(t);'如果使用't == typeof(int)''會很好,但是會爆炸(不符合約束)'t == typeof(string) 。所以'Nullable <>'不會以任何方式作爲參考類型和可爲空值類型的一種「通用類型」。 – 2017-10-04 20:27:11