Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengambil Semua Kelas dalam Ruang Nama Tertentu dalam C#?

Bagaimana untuk Mengambil Semua Kelas dalam Ruang Nama Tertentu dalam C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-04 00:31:44307semak imbas

How to Retrieve All Classes within a Specific Namespace in C#?

Mendapatkan semula Kelas dalam Ruang Nama dalam C#

Dalam C#, mendapatkan semua kelas dalam ruang nama tertentu memerlukan pendekatan tidak langsung. Untuk mencapai matlamat ini:

  1. Sebutkan Jenis Perhimpunan:

    • Dapatkan semula semua jenis dalam perhimpunan di bawah penelitian.
  2. Tapis mengikut Ruang nama:

    • Sahkan ruang nama setiap jenis, mengekalkan hanya ruang nama dalam ruang nama sasaran.

Coretan kod berikut menunjukkan perkara ini proses:

private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
    return 
      assembly.GetTypes()
              .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))
              .ToArray();
}

Contoh penggunaan:

Assembly executingAssembly = Assembly.GetExecutingAssembly();
Type[] typelist = GetTypesInNamespace(executingAssembly, "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
    Console.WriteLine(typelist[i].Name);
}

Untuk versi .NET sebelum 2.0, di mana Assembly.GetExecutingAssembly() tidak tersedia:

Assembly myAssembly = typeof(<Namespace>.<someClass>).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "<Namespace>");
for (int i = 0; i < typelist.Length; i++)
{
    Console.WriteLine(typelist[i].Name);
}

Atas ialah kandungan terperinci Bagaimana untuk Mengambil Semua Kelas dalam 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