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

Bagaimanakah Saya Boleh Cari Semua Kelas Dengan Cekap Dalam Ruang Nama Tertentu dalam C#?

DDD
Lepaskan: 2024-12-31 19:15:22
asal
704 orang telah melayarinya

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

Mencari Kelas dalam Ruang Nama

Apabila bekerja dengan kod dalam C#, anda mungkin menghadapi keperluan untuk mengakses semua kelas dalam ruang nama tertentu. Ini boleh dilakukan melalui proses dua langkah: mengenal pasti pemasangan yang mengandungi jenis dan kemudian menapis jenis berdasarkan ruang nama mereka.

Untuk bermula, gunakan Assembly.GetTypes() untuk mendapatkan tatasusunan semua jenis dalam perhimpunan yang dimuatkan. Selepas itu, gunakan kaedah sambungan Where dengan parameter StringComparison.Ordinal yang ditetapkan untuk menapis jenis ini berdasarkan ruang nama mereka.

Berikut ialah contoh pelaksanaan:

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 versi .NET sebelum 2.0 , apabila Assembly.GetExecutingAssembly() tidak wujud, gunakan penyelesaian berikut untuk mendapatkan pemasangan:

Assembly myAssembly = typeof(namespace.className).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "namespace");
Salin selepas log masuk

Dengan mengikut langkah-langkah ini, anda boleh mendapatkan semula semua kelas dengan cekap dalam mana-mana ruang nama yang ditentukan, membolehkan anda memproses atau memanipulasi lagi jenis ini mengikut keperluan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Cari Semua Kelas Dengan Cekap 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan