2008-12-05 53 views
10

是否有方法从特定命名空间获取对象?或许与System.Reflections?我想从名称空间Test.TestTypes中的ITestType类型获取所有对象作为对象,以便我有一个TestType1, TestType2, TestType3等实例的列表。有人能帮我吗?我不知道在哪里寻找。取出特定命名空间的所有类别

回答

19

你可以找到所有的类型一个组件内,并找到所有那些符合给定命名空间哪种类型的(这与LINQ很容易) - 但如果你没有一个特定的组件,通过看,你需要检查全部的可能的。但是,如果您正在寻找找到所有对象对象的方法,那么这是另一回事 - 就我所知,如果不使用profiler API,则无法执行此操作。 (即使到那时它可能很难 - 我不知道。)

这里的LINQ查询,但:

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