Разрешить тип из имени класса в другой сборке
у меня есть метод, где мне нужно решить тип класса. Этот класс существует в другой сборке с пространством имен, как:
MyProject.Domain.Model
Я пытаюсь выполнить следующее:
Type.GetType("MyProject.Domain.Model." + myClassName);
это отлично работает, если код, выполняющий это действие, находится в той же сборке, что и класс, тип которого я пытаюсь разрешить, однако, если мой класс находится в другой сборке, этот код не выполняется.
Я уверен, что есть гораздо лучший способ выполните эту задачу, но у меня не было большого опыта разрешения сборок и обхода пространств имен внутри, чтобы решить тип класса, который я ищу. Любые советы или рекомендации, чтобы выполнить эту задачу более изящно?
4 ответа:
вам нужно будет добавить имя сборки следующим образом:
Type.GetType("MyProject.Domain.Model." + myClassName + ", AssemblyName");
чтобы избежать двусмысленности или если сборка находится в GAC, необходимо указать полное имя сборки, например:
Type.GetType("System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
короткий и динамический подход с использованием
AssemblyQualifiedName
собственность -Type.GetType(Type.GetType("MyProject.Domain.Model." + myClassName).AssemblyQualifiedName)
наслаждайтесь!