Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Dapatkan Semua Kelas daripada Ruang Nama Tertentu dalam C#?
Mengambil Semua Kelas Dalam Ruang Nama dalam C#
Untuk mendapatkan semua kelas dalam ruang nama tertentu dalam C#, gunakan teknik berikut:
Dapatkan semua jenis dalam pemasangan sasaran menggunakan Assembly.GetTypes().
Tapis jenis yang diperoleh berdasarkan ruang nama mereka. Gunakan Where with String.Equals untuk memadankan ruang nama setiap jenis dengan ruang nama yang diingini.
Tukar koleksi jenis yang terhasil kepada tatasusunan menggunakan ToArray().
Contoh:
using System.Reflection; private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace) { return assembly.GetTypes() .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)) .ToArray(); }
Untuk menggunakan kaedah ini, gunakan kaedah ini dengan pemasangan sasaran dan ruang nama:
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
Untuk versi sebelum .Net 2.0:
Assembly myAssembly = typeof(Namespace.someClass).GetTypeInfo().Assembly; Type[] typelist = GetTypesInNamespace(myAssembly, "Namespace");
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Semua Kelas daripada Ruang Nama Tertentu dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!