首頁 > 後端開發 > C++ > 如何在 C# 中取得命名空間中的所有類別?

如何在 C# 中取得命名空間中的所有類別?

DDD
發布: 2024-12-31 17:17:15
原創
551 人瀏覽過

How to Get All Classes from a 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() 不可用,涉及 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板