我想在运行时创建System.Drawing.Point
类型的对象,我尝试使用下面的代码:
String typename = "System.Drawing.Point";
Type tp = Type.GetType(typename);
Object instance = Activator.CreateInstance(tp);
但我总是得到tp == null
。但是,例如,如果我使用System.Double
一切正常。
答案 0 :(得分:4)
Type.GetType将尝试从mscorlib加载类型。使用类型的程序集限定名称。
String typename = "System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
Type tp = Type.GetType(typename);
答案 1 :(得分:1)
您需要qualify the assembly in your type name,所以
String typename = "System.Drawing.Point, System.Drawing";
将起作用(如果引用并加载了System.Drawing.dll)。
的typeName
输入:System.String
要获取的类型的程序集限定名称。 [..]如果类型在当前正在执行的程序集中或在Mscorlib.dll中,则提供由其名称空间限定的类型名称就足够了。