0

我希望在运行时实例化一个对象,它的类型在字符串中,但它的值也在字符串中。例如:

string myType = "System.Int32";
string myValue = "3";

我正在寻找创建 myType 的实例并将 myValue 强制转换/分配到我刚刚创建的实例中。

我调查了 Activator.CreateInstance :

object objectInstance = Activator.CreateInstance(Type.GetType(myType));

但我无法将我的值传递给我的实例(可以是任何东西:int16/32/64、double、bool、自定义类型......)。

感谢您的帮助

4

2 回答 2

1

这只适用于值类型......

var t = Type.GetType("System.Int32");
object x = Activator.CreateInstance(t);

if (t.IsValueType)
   x = Convert.ChangeType("2", t);
于 2014-08-12T13:14:57.723 回答
0

您需要获取类型对象,然后使用Convert该类:

string myType = "System.Int32";
Type type=Type.GetType(myType)

string myValue = "3";
object convertedValue = Convert.ChangeType(myValue, type);
于 2014-08-12T13:19:18.850 回答