11

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

4

1 回答 1

22

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

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

这是 LINQ 查询:

public static IEnumerable<Type> GetTypesFromNamespace(Assembly assembly, 
                                               String desiredNamespace)
{
    return assembly.GetTypes()
                   .Where(type => type.Namespace == desiredNamespace);
}
于 2008-12-05T13:49:49.093 回答