vb.net Получение ссылки на класс по его имени - PullRequest
0 голосов
/ 06 сентября 2010

Я пытаюсь использовать рефлексию, чтобы получить экземпляр класса в vb.net.У меня есть класс 'A' в моем веб-проекте, и для его тестирования я создаю новую страницу aspx и пытаюсь написать следующее:

Dim t as Type = Type.GetType("A")

Это возвращает "Nothing".Но если я сделаю это:

Dim inst as A = new A()
Dim t as Type = inst.GetType()

тип t - это "A"

Так почему же я не могу получить тип с помощью GetType, даже если имя точно такое же?Это работает для таких вещей, как System.Math, хотя, возможно, я что-то упускаю как новичок.

1 Ответ

3 голосов
/ 06 сентября 2010

Две вещи:

  • Вам необходимо включить пространство имен типа
  • Если тип не входит в mscorlib или текущую сборку, вам также необходимо указать имя сборки (включая номера версий и информацию об открытом ключе, если это сборка со строгим именем).

Так, например, чтобы получить System.Linq.Enumerable, вам понадобится что-то вроде:

Type.GetType("System.Linq.Enumerable, System.Core, Version=4.0.0.0, " & _
             "Culture=neutral, PublicKeyToken=b77a5c561934e089")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...