Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Semua Kelas dari Ruang Nama dalam C#?

Bagaimana untuk Mendapatkan Semua Kelas dari Ruang Nama dalam C#?

DDD
DDDasal
2024-12-31 17:17:15557semak imbas

How to Get All Classes from a Namespace in C#?

Cara Mengambil Semua Kelas Dalam Ruang Nama dalam C#

Menyenaraikan semua kelas dalam ruang nama yang ditentukan boleh dicapai dalam C# melalui teknik yang memeriksa semua jenis dalam perhimpunan dan menapisnya berdasarkan ruang nama mereka. Berikut ialah pendekatan secara terperinci:

using System.Reflection;

private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
    return assembly.GetTypes()
                    .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))
                    .ToArray();
}

Penggunaan Contoh:

Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
    Console.WriteLine(typelist[i].Name);
}

Sebelum .Net 2.0, di mana Assembly.GetExecutingAssembly() tidak tersedia, pendekatan alternatif yang melibatkan typeof() ialah diperlukan untuk mendapatkan pemasangan:

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);
}

Dengan menggunakan ini teknik, pembangun boleh mendapatkan semula semua kelas yang berada dalam ruang nama tertentu dengan berkesan, membolehkan penghitungan kelas dinamik dalam aplikasi C#.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Semua Kelas dari Ruang Nama dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn