【问题标题】:Assembly.ExecutingAssembly() GetType() doesn't return anythingAssembly.ExecutingAssembly() GetType() 不返回任何内容
【发布时间】:2012-04-10 01:43:50
【问题描述】:

这是我的代码,很简单:

namespace EnumReflection
{
    enum Messengers
    {
      MSN,
      ICQ,
      YahooChat,
      GoogleTalk
    }

  class Program
  {
    static void Main(string[] args)
    {
      FieldInfo[] fields = typeof(Messengers).GetFields(BindingFlags.Static | BindingFlags.Public);

      foreach (var field in fields)
      {
        Console.WriteLine(field.Name);
      }

      var assembly = Assembly.GetExecutingAssembly();
      var type = assembly.GetType("Messengers");

      Console.ReadLine();
    }
  }
}

但是,type 变量始终为 null,即使当我说 assembly.GetTypes() 时,它也会返回 MessengersProgram 等所有类型。

这是我的即时窗口的副本:

assembly.GetType("Messengers");
null
assembly.GetTypes();
{System.Type[2]}
    [0]: {Name = "Messengers" FullName = "EnumReflection.Messengers"}
    [1]: {Name = "Program" FullName = "EnumReflection.Program"}

【问题讨论】:

    标签: c# .net assemblies


    【解决方案1】:

    Assembly.GetType() 方法应该采用类型的全名,包括命名空间。尝试传递EnumReflection.Messengers,应该可以。

    【讨论】:

      【解决方案2】:

      您应该在 GetType() 中指定一个全名(即不包含命名空间)以获取类型

      【讨论】:

        猜你喜欢
        • 2020-04-27
        • 2019-04-06
        • 2012-02-15
        • 2020-09-07
        • 2021-11-22
        • 2015-11-06
        • 2013-11-14
        • 2014-03-23
        • 2012-08-25
        相关资源
        最近更新 更多