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(); }
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");
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!