如何在C# 中擷取命名空間內的所有類別
在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() 不可用,涉及 typeof()的替代方法是獲取程序集所需的:
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中文網其他相關文章!