取出特定命名空间的所有类

Posted

技术标签:

【中文标题】取出特定命名空间的所有类【英文标题】:Taking out all classes of a specific namespace 【发布时间】:2010-09-25 12:35:40 【问题描述】:

有没有办法从特定的命名空间中获取对象?也许是System.Reflections?我想从命名空间Test.TestTypes 中的类型ITestType 中获取所有对象作为对象,这样我就有了TestType1, TestType2, TestType3 的实例列表等等。有人能帮我吗?我不知道在哪里搜索。

【问题讨论】:

Getting all types in a namespace via reflection的可能重复 【参考方案1】:

您可以在程序集中找到所有 类型,并找到与给定命名空间匹配的所有类型(这对于 LINQ 来说真的很容易) - 但如果您没有特定的程序集要查看,您需要检查所有个可能的。

但是,如果您正在寻找一种查找所有实时 对象 的方法,那就另当别论了 - 就我而言,如果不使用分析器 API,您将无法做到这一点。我知道。 (即使那样也可能很难 - 我不知道。)

这是 LINQ 查询:

public static IEnumerable<Type> GetTypesFromNamespace(Assembly assembly, 
                                               String desiredNamespace)

    return assembly.GetTypes()
                   .Where(type => type.Namespace == desiredNamespace);

【讨论】:

以上是关于取出特定命名空间的所有类的主要内容,如果未能解决你的问题,请参考以下文章

如何获取特定命名空间内的所有类名?

C ++:使类及其某些数据成员仅在命名空间中可用

C#中如何获得指定命名空间中所有自定义类的信息

获取命名空间内的所有类[重复]

PHP 使用命名空间 - 将所有类包含在命名空间下的解决方案

11类加载器的命名空间