Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Dapatkan Semua Kelas Dalam Ruang Nama Tertentu dalam C#?

Bagaimanakah Saya Boleh Dapatkan Semua Kelas Dalam Ruang Nama Tertentu dalam C#?

Linda Hamilton
Lepaskan: 2024-12-31 18:02:15
asal
735 orang telah melayarinya

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

Mendapatkan semula Semua Kelas dalam Ruang Nama dalam C

Mendapatkan semua kelas dalam ruang nama tertentu adalah penting dalam pelbagai senario. Dalam C#, terdapat pendekatan menyeluruh untuk menyelesaikan tugasan ini.

Untuk menangani keperluan ini, kami akan meneroka pendekatan ke belakang. Dengan menyenaraikan semua jenis pada mulanya dalam perhimpunan dan kemudian meneliti ruang nama setiap jenis, kami boleh menapis kelas yang diingini dengan berkesan.

Coretan kod berikut mempamerkan teknik ini:

using System.Reflection;

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

Untuk menggambarkan penggunaannya, pertimbangkan contoh berikut:

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

Dalam persekitaran sebelum .Net 2.0, apabila "Assembly.GetExecutingAssembly()" tidak tersedia, anda memerlukan penyelesaian untuk mendapatkan semula pemasangan seperti berikut:

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);
}
Salin selepas log masuk

Dengan menggunakan kaedah ini, anda boleh menghitung semua kelas dengan berkesan dalam ruang nama yang diingini dalam C#.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Semua Kelas Dalam Ruang Nama Tertentu dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan