ホームページ >バックエンド開発 >C++ >C# で名前空間からすべてのクラスを取得する方法

C# で名前空間からすべてのクラスを取得する方法

DDD
DDDオリジナル
2024-12-31 17:17:15585ブラウズ

How to Get All Classes from a Namespace in C#?

C# で名前空間内のすべてのクラスを取得する方法

指定された名前空間内のすべてのクラスを列挙することは、次の手法を使用して C# で実現できます。アセンブリ内のすべての型を検索し、名前空間に基づいてフィルター処理します。アプローチの詳細は次のとおりです:

using System.Reflection;

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

使用例:

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

.Net 2.0 より前では、Assembly.GetExecutingAssembly() が利用できませんでしたが、typeof() を使用する代替アプローチは次のとおりです。アセンブリを取得するには次のものが必要です:

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);
}

これらの手法を利用することで、開発者は特定の名前空間内に存在するすべてのクラスを効果的に取得できるため、C# アプリケーションでの動的なクラスの列挙が可能になります。

以上がC# で名前空間からすべてのクラスを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。