Type.GetType()不适用于非本机类型?

时间:2012-03-22 10:21:50

标签: c# gettype

我尝试使用UnityEngine.Vector3获取Type.GetType()类型,但返回NULL。它适用于本机类型。

2 个答案:

答案 0 :(得分:3)

如果它不是“nativa类型”或在调用程序集内部,则需要使用程序集

阅读本文:

  

如果typeName包含命名空间而不包含程序集名称,则此方法仅按顺序搜索调用对象的程序集和Mscorlib.dll。如果typeName完全使用部分或完整程序集名称限定,则此方法将在指定的程序集中搜索。如果程序集具有强名称,则需要完整的程序集名称。

typeName Type.GetType(string type)的参数)

  

类型:System.String   要获取的类型的程序集限定名称。请参阅AssemblyQualifiedName。如果类型在当前正在执行的程序集中或在Mscorlib.dll中,则提供由其名称空间限定的类型名称就足够了。   语法如下:

var type = Type.GetType("UnityEngine.Vector3, AssemblyName");

答案 1 :(得分:3)

如果类型位于不同的程序集中,您可能需要指定此类型所在的程序集:

var type = Type.GetType("UnityEngine.Vector3, UnityEngine", true);