使用Assembly.GetType(“MyCompany.Class1.Class2”)返回null

时间:2008-12-17 21:33:34

标签: c# .net

我正在尝试使用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

有谁知道我做错了什么以及我能做些什么来解决这个问题?

提前致谢

凯文D.沃尔夫 坦帕,佛罗里达州

3 个答案:

答案 0 :(得分:18)

您需要使用Plus符号来使用Assembly.GeType来映射嵌套类。

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

答案 1 :(得分:5)

我认为它名为MyComnpany.Class1 + Class2。

如果我在类似的结构上运行此代码,那就是我所看到的:

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

示例查看名称的类型。

答案 2 :(得分:4)

你需要使用加号。像“MyAssembly.Class1 + NestedClass”这样的东西。