Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengakses Semua Kelas Dalam Ruang Nama Menggunakan Refleksi dalam C#?
Gunakan refleksi C# untuk mengakses semua kelas dalam ruang nama
Dalam C#, mendapatkan semua kelas dalam ruang nama melalui refleksi memerlukan pertimbangan yang teliti. Tidak seperti Java, di mana kelas hanya wujud dalam ruang nama yang ditentukan, ruang nama C# boleh merangkumi berbilang perhimpunan.
Untuk mendapatkan senarai lengkap kelas dalam ruang nama, ikut langkah berikut:
Assembly.GetExecutingAssembly().GetTypes()
. where t.IsClass && t.Namespace == nspace
untuk menapis. Kod berikut menggunakan pendekatan ini dengan berkesan:
<code class="language-csharp">string nspace = "..."; var q = from t in Assembly.GetExecutingAssembly().GetTypes() where t.IsClass && t.Namespace == nspace select t; q.ToList().ForEach(t => Console.WriteLine(t.Name));</code>
Kod ini berulang melalui semua jenis dalam perhimpunan, memilih kelas dalam ruang nama yang ditentukan. Kemudian cetak nama kelas ke konsol. Ambil perhatian bahawa ini terhad kepada perhimpunan yang sedang dilaksanakan. Untuk mengakses kelas dalam perhimpunan lain, anda perlu mengubah suai kod anda untuk memasukkan rujukan kepada perhimpunan tersebut.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Semua Kelas Dalam Ruang Nama Menggunakan Refleksi dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!