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

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

您可以在程序集中找到所有类型 ,并查找与给定命名空间匹配的所有类型(这对LINQ来说非常简单) – 但如果您没有要查看的特定程序集,则需要检查所有可能的。

但是,如果您正在寻找一种查找所有活动对象的方法 ,那就是另一回事了 – 据我所知,如果不使用探查器API,就无法做到这一点。 (即便如此,它可能很难 – 我不知道。)

这是LINQ查询:

 public static IEnumerable GetTypesFromNamespace(Assembly assembly, String desiredNamespace) { return assembly.GetTypes() .Where(type => type.Namespace == desiredNamespace); }