首頁 >後端開發 >C++ >C# 如何有效率地尋找特定命名空間內的所有類別?

C# 如何有效率地尋找特定命名空間內的所有類別?

DDD
DDD原創
2024-12-31 19:15:22698瀏覽

How Can I Efficiently Find All Classes Within a Specific Namespace in C#?

在命名空間中尋找類別

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn