首頁 >後端開發 >C++ >如何在 C# 中檢索特定命名空間內的所有類別?

如何在 C# 中檢索特定命名空間內的所有類別?

Linda Hamilton
Linda Hamilton原創
2024-12-31 18:02:15701瀏覽

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

檢索 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()」不可用,您需要一種解決方法來檢索程序集,如下所示:

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

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