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

时间:2008-12-05 13:44:30

标签: c# reflection namespaces

有没有办法从特定的命名空间中获取对象?也许是System.Reflections?我希望将名称空间ITestType中的Test.TestTypes类型的所有对象作为对象获取,以便我有TestType1, TestType2, TestType3的实例列表,依此类推。有人能帮我吗?我不知道在哪里搜索。

1 个答案:

答案 0 :(得分:22)

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

但是,如果您正在寻找一种查找所有实时对象的方法,那就是另一回事了 - 如果不使用探查器API就不能这样做,就我而言我知道。 (即便如此,它可能很难 - 我不知道。)

这是LINQ查询:

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