Type.GetType () не работает для не нативных типов? - PullRequest
1 голос
/ 22 марта 2012

Я пытался получить тип UnityEngine.Vector3, используя Type.GetType(), но он возвращает NULL.Работает нормально для нативных типов.

Ответы [ 2 ]

3 голосов
/ 22 марта 2012

Возможно, вам также понадобится указать сборку, в которой находится этот тип, если тип находится в другой сборке:

var type = Type.GetType("UnityEngine.Vector3, UnityEngine", true);
3 голосов
/ 22 марта 2012

Вам нужно использовать сборку, если она не "нативного типа" или внутри вызывающей сборки

Читать это:

Если typeName включает пространство имен, но не имя сборки, этот метод ищет только сборку вызывающего объекта и Mscorlib.dll в указанном порядке. Если typeName полностью определено с частичным или полным именем сборки, этот метод выполняет поиск в указанной сборке. Если сборка имеет строгое имя, необходимо указать полное имя сборки.

typeName (параметр Type.GetType(string type))

Тип: System.String Завершенное сборкой имя типа для получения . См. AssemblyQualifiedName. Если тип находится в текущей выполняющейся сборке или в Mscorlib.dll, достаточно указать имя типа, соответствующее его пространству имен. Синтаксис такой:

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