创建System.Drawing.Point类型的运行时对象时出错

时间:2013-07-24 11:44:49

标签: c# gettype

我想在运行时创建System.Drawing.Point类型的对象,我尝试使用下面的代码:

String typename = "System.Drawing.Point";
Type tp = Type.GetType(typename);
Object instance = Activator.CreateInstance(tp);

但我总是得到tp == null。但是,例如,如果我使用System.Double一切正常。

2 个答案:

答案 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中,则提供由其名称空间限定的类型名称就足够了。