取得特定命名空間內的所有類別在各種場景中都是必不可少的。在 C# 中,有多種方法可以完成此任務。
為了滿足這項需求,我們將探索一種向後方法。透過最初列出程式集中的所有類型,然後仔細檢查每種類型的命名空間,我們可以有效地篩選所需的類別。
以下程式碼片段展示了此技術:
using System.Reflection; private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace) { return assembly.GetTypes() .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)) .ToArray(); }
為了說明其用法,請考慮以下範例:
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace"); for (int i = 0; i < typelist.Length; i++) { Console.WriteLine(typelist[i].Name); }
在 .Net 2.0在先前的環境中,其中「Assembly.GetExecutingAssembly()」不可用,您需要一種解決方法來檢索程序集,如下所示:
Assembly myAssembly = typeof(<Namespace>.<someClass>).GetTypeInfo().Assembly; Type[] typelist = GetTypesInNamespace(myAssembly, "<Namespace>"); for (int i = 0; i < typelist.Length; i++) { Console.WriteLine(typelist[i].Name); }
透過使用這些方法,您可以有效地枚舉舉C# 中所需命名空間內的所有類別。
以上是如何在 C# 中檢索特定命名空間內的所有類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!