我希望在运行时实例化一个对象,其类型为字符串,但也是字符串中的值。例如:
string myType = "System.Int32";
string myValue = "3";
我正在寻找创建myType的实例并将myValue转换/分配到我刚刚创建的实例中。
我研究过Activator.CreateInstance:
object objectInstance = Activator.CreateInstance(Type.GetType(myType));
但我无法将我的值传递给我的实例(可能是任何东西:int16 / 32/64,double,bool,自定义类型......)。
感谢您的帮助
答案 0 :(得分:1)
仅适用于价值类型......
var t = Type.GetType("System.Int32");
object x = Activator.CreateInstance(t);
if (t.IsValueType)
x = Convert.ChangeType("2", t);
答案 1 :(得分:0)
您需要获取类型对象,然后使用Convert
类:
string myType = "System.Int32";
Type type=Type.GetType(myType)
string myValue = "3";
object convertedValue = Convert.ChangeType(myValue, type);