0
我想初始化泛型類型的所有公共屬性。
我已經寫了下面的方法:初始化通用類型中的所有屬性?
public static void EmptyModel<T>(ref T model) where T : new()
{
foreach (PropertyInfo property in typeof(T).GetProperties())
{
Type myType = property.GetType().MakeGenericType();
property.SetValue(Activator.CreateInstance(myType));//Compile error
}
}
但它有一個編譯錯誤
我該怎麼辦呢?
如果財產沒有什麼構造函數。例如:如果property爲String,則發生此異常:'沒有爲此對象定義無參數構造函數。' – 2013-03-26 03:21:04
@Mohammad Activator.CreateInstance只適用於帶無參數構造函數的類型(至少是您調用它的方式)。看到我的更新答案替代。這會使任何字符串屬性初始化爲null。 – 2013-03-26 03:34:01