在命名空間中尋找類別
在C# 中使用程式碼時,您可能會遇到需要存取特定命名空間中的所有類的情況。這可以透過兩個步驟來完成:識別包含類型的程序集,然後根據其命名空間過濾類型。
首先,使用 Assembly.GetTypes() 取得所有類型的陣列在載入的程式集中。隨後,使用具有 StringComparison.Ordinal 參數集的 Where 擴充方法,根據命名空間過濾這些類型。
以下是一個範例實作:
using System.Reflection; private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace) { return assembly.GetTypes() .Where(t => string.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)) .ToArray(); }
適用於 2.0 之前的 .NET 版本,如果 Assembly.GetExecutingAssembly()不存在,請使用以下解決方法來獲取assembly:
Assembly myAssembly = typeof(namespace.className).GetTypeInfo().Assembly; Type[] typelist = GetTypesInNamespace(myAssembly, "namespace");
透過執行以下步驟,您可以有效地檢索任何指定命名空間內的所有類,使您能夠根據需要進一步處理或操作這些類型。
以上是C# 如何有效率地尋找特定命名空間內的所有類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!