有没有办法从特定的命名空间中获取对象?也许是System.Reflections
?我希望将名称空间ITestType
中的Test.TestTypes
类型的所有对象作为对象获取,以便我有TestType1, TestType2, TestType3
的实例列表,依此类推。有人能帮我吗?我不知道在哪里搜索。
答案 0 :(得分:22)
您可以在程序集中找到所有类型,并找到与给定命名空间匹配的所有类型(这对LINQ来说非常简单) - 但是如果您没有特定的程序集要查看,您需要检查所有可能的
。但是,如果您正在寻找一种查找所有实时对象的方法,那就是另一回事了 - 如果不使用探查器API就不能这样做,就我而言我知道。 (即便如此,它可能很难 - 我不知道。)
这是LINQ查询:
public static IEnumerable<Type> GetTypesFromNamespace(Assembly assembly,
String desiredNamespace)
{
return assembly.GetTypes()
.Where(type => type.Namespace == desiredNamespace);
}