[英]Getting all namespaces in certain directory
我试图找到一种方法来检索我们测试目录中的所有名称空间。 项目中的所有类共享相同的名称空间,因此我也需要获取该类。 我正在寻找的结果应如下所示
Project.ClassA
Project.ClassB
其中Project是名称空间,ClassA是类名称。 我尝试了这样的功能...
assembly = Assembly.GetAssembly(typeof(System.Int32));
var groups = assembly.GetTypes().Where(t => t.IsClass);
foreach(var group in groups)
{
Console.WriteLine(group);
}
但是,这将返回大量系统信息,与我正在寻找的内容无关。 我在正确的轨道上吗? 另外,如何使它仅在测试目录中显示?
这将为您提供属于当前应用程序域的所有类型(即,已加载的所有类型):
var types = AppDomain.CurrentDomain
.GetAssemblies()
.SelectMany(a => a.GetTypes());
如果要过滤该列表,只需添加一个Where
子句:
var types = AppDomain.CurrentDomain
.GetAssemblies()
.SelectMany(a => a.GetTypes())
.Where(a => !string.IsNullOrEmpty(a.Namespace) &&
a.Namespace.StartsWith("Foo"));
与他们一起做一些事情:
foreach(var type in types)
{
Console.WriteLine($"Found type {type.Name}");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.