首頁 >後端開發 >C++ >如何在 C# 中檢索特定命名空間內的所有類別?

如何在 C# 中檢索特定命名空間內的所有類別?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-04 00:31:44307瀏覽

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

在 C# 中檢索命名空間內的類別

在 C# 中,取得特定命名空間內的所有類別需要間接方法。要實現此目的:

  1. 枚舉程序集類型:

    • 檢索下程序集中的所有類型仔細檢查。
  2. 依命名空間濾波:

    • 驗證每種類型的命名空間,只保留目標命名空間內的命名空間.

以下程式碼片段示範了此過程:

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

用法範例:

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

用法範例:
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);
}
用法範例:用法範例:對於2.0 之前的 .NET 版本,其中 Assembly.GetExecutingAssembly() 不可用:

以上是如何在 C# 中檢索特定命名空間內的所有類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn