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

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

Patricia Arquette
Patricia Arquetteasal
2024-12-29 10:33:101012semak imbas

How Can I Retrieve All Classes from a Specific Namespace in 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!

Kenyataan:
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