[英]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.