ホームページ >バックエンド開発 >C++ >C# で特定の名前空間内のすべてのクラスを効率的に検索するにはどうすればよいですか?

C# で特定の名前空間内のすべてのクラスを効率的に検索するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-31 19:15:22730ブラウズ

How Can I Efficiently Find All Classes Within a Specific Namespace in C#?

名前空間内のクラスの検索

C# でコードを操作する場合、特定の名前空間内のすべてのクラスにアクセスする必要が生じる場合があります。これは、型を含むアセンブリを識別し、名前空間に基づいて型をフィルタリングするという 2 段階のプロセスを通じて実行できます。

まず、Assembly.GetTypes() を使用してすべての型の配列を取得します。読み込まれたアセンブリ内。その後、StringComparison.Ordinal パラメータを設定した Where 拡張メソッドを使用して、名前空間に基づいてこれらの型をフィルタリングします。

実装例は次のとおりです。

using System.Reflection;

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

2.0 より前の .NET バージョンの場合Assembly.GetExecutingAssembly() が存在しない場合は、次の回避策を利用して、 Assembly:

Assembly myAssembly = typeof(namespace.className).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "namespace");

これらの手順に従うと、指定された名前空間内のすべてのクラスを効率的に取得でき、必要に応じてこれらの型をさらに処理または操作できるようになります。

以上がC# で特定の名前空間内のすべてのクラスを効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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