Использование Assembly.GetType( "MyCompany.Class1.Class2" ) возвращает null

Я пытаюсь использовать Assembly.GetType( "MyCompany.Class1.Class2" ) для динамического получения типа из строки.

Assembly.GetType("MyCompany.Class1");

работает как ожидалось.

Если я внедряю класс в другой класс, например:

namespace MyCompany
{
  public class Class1
  {
     //.....
     public class Class2
     {
        //.....
     }
  }
}

и попытайтесь получить тип Class2

Assembly.GetType("MyCompany.Class1.Class2") 

вернет null.

Я использую .NET Frameworks 3.5 SP1

Кто-нибудь знает, что я делаю неправильно, и что я могу сделать, чтобы исправить это?

Заранее спасибо

Кевин Д. Вольф Тампа, Флорида

Ответы

Ответ 1

Вам нужен знак "Плюс", чтобы отображать вложенные классы с помощью Assembly.GeType.

 Assembly.GetType("MyCompany.Class1+Class2");

Ответ 2

Я думаю, что это называется MyComnpany.Class1 + Class2.

Если я запустил этот код в подобной структуре, это то, что я вижу:

Assembly assem = Assembly.GetExecutingAssembly();
Type[] types = assem.GetTypes();

Примеры Типы для просмотра имен.

Ответ 3

Вам нужно использовать знаки плюс. Что-то вроде "MyAssembly.Class1 + NestedClass".