【问题标题】:How to get all classes in current project using reflection? [duplicate]如何使用反射获取当前项目中的所有类? [复制]
【发布时间】:2010-02-23 14:42:38
【问题描述】:

如何使用反射列出当前项目(程序集?)中的所有类?谢谢。

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    给定一个 System.Reflection.Assembly 的实例 a,您可以使用以下方法获取程序集中的所有类型:

    var allTypes = a.GetTypes();
    

    这将为您提供所有类型,公共的、内部的和私有的。

    如果你只想要公共类型,你可以使用:

    var publicTypes = a.GetExportedTypes();
    

    如果您从程序集本身运行此代码,则可以使用获取程序集

    var a = Assembly.GetExecutingAssembly();
    

    GetTypes 和 GetExportedTypes 将为您提供所有类型(结构、类、枚举、接口等),因此如果您只需要类,则必须进行过滤

    var classes = a.GetExportedTypes().Where(t => t.IsClass);
    

    【讨论】:

      【解决方案2】:

      看看Assembly.GetTypes 方法。

      【讨论】:

        【解决方案3】:

        是的,您使用Assembly.GetTypes 方法。

        【讨论】:

          猜你喜欢
          • 2012-03-08
          • 1970-01-01
          • 1970-01-01
          • 2011-08-07
          • 1970-01-01
          • 1970-01-01
          • 2015-04-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多