动态类型实例化C#

时间:2014-08-12 13:06:17

标签: c# dynamic instantiation activator objectinstantiation

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

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

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

我研究过Activator.CreateInstance:

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

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

感谢您的帮助

2 个答案:

答案 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);