我想用一个动态参数创建对象的实例,就像C#私人牛逼的CreateObject <T>()
private Type ClassType { get; set; }
model = (CreateObject<typeof(this.ClassType)>)ser.Deserialize(sr);
private T CreateObject<T>()
{
return (T)Activator.CreateInstance(this.ClassType);
}
我想尝试它没有像“startconfig”修复类型。 但它仍然无法正常工作,你能帮助我吗?
var mi = GetType().GetMethod("CreateObject");
var miConstructed = mi.MakeGenericMethod(this.ClassType);
var instance = miConstructed.Invoke(this, null);
var model = (instance)ser.Deserialize(sr);
}
private T CreateObject<T>()
{
return (T)Activator.CreateInstance(this.ClassType);
}
这并不工作,无论如何,原因:他类型或命名空间名称“类型/命名空间”找不到(是否缺少using指令或程序集引用?)
是happends在铸造ser.Deserialize(SR);
以什么方式不起作用:你会得到一个异常(在这种情况下:什么异常和消息>?)或其他? – Richard
这是什么“ClassType”属性? – logicnp
我得到了编译错误: http://msdn.microsoft.com/en-us/library/hxfhx4sy(v=vs.90).aspx – Ipad