[英]Dynamic Type instantiation C#
我希望在运行时实例化一个对象,该对象的类型为字符串,但其值也为字符串。 例如:
string myType = "System.Int32";
string myValue = "3";
我正在寻找创建myType的实例并将myValue强制转换/分配给刚创建的实例。
我研究了Activator.CreateInstance:
object objectInstance = Activator.CreateInstance(Type.GetType(myType));
但是我无法将我的值传递给我的实例(可以是任何东西:int16 / 32/64,double,bool,自定义类型...)。
谢谢您的帮助
这仅适用于值类型...
var t = Type.GetType("System.Int32");
object x = Activator.CreateInstance(t);
if (t.IsValueType)
x = Convert.ChangeType("2", t);
您需要获取类型对象,然后使用Convert
类:
string myType = "System.Int32";
Type type=Type.GetType(myType)
string myValue = "3";
object convertedValue = Convert.ChangeType(myValue, type);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.