ホームページ >バックエンド開発 >C++ >C# アセンブリ内のすべてのクラスをプログラムで一覧表示するにはどうすればよいですか?

C# アセンブリ内のすべてのクラスをプログラムで一覧表示するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-24 14:38:11648ブラウズ

How Can I Programmatically List All Classes in a C# Assembly?

アセンブリ内のクラスの列挙

アセンブリ内で定義されたクラスのリストをプログラムで取得するには、C# のアセンブリ リフレクション機能を利用できます。これにより、アセンブリのメタデータとそのメンバー (クラスを含む) のイントロスペクションと検査が可能になります。

Assembly.GetTypes を使用したソリューション

アセンブリの GetTypes メソッドは、取得するための簡単なアプローチを提供します。アセンブリ内で定義されたすべての型を表す Type オブジェクトのコレクション。たとえば、特定のアセンブリ内のクラスを列挙するには:

Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
    if (type.IsClass) // Filter for classes
    {
        Console.WriteLine(type.FullName);
    }
}

このコードは、mscorlib アセンブリ (コア機能クラスを含む) で定義されたクラスを反復処理し、それらの完全な名前を出力します。

さらなる考慮事項

上記のコードは、クラス以外の他の型を処理するように拡張できます。たとえば、すべての型 (インターフェイス、列挙型など) をリストするには:

foreach (Type type in mscorlib.GetTypes())
{
    Console.WriteLine($"{type.FullName} ({type.Namespace})");
}

リフレクションにより、アセンブリとそのメンバーの広範なイントロスペクションが可能になり、オブジェクトのインスタンス化、型検証、コード生成などのさまざまなタスクが容易になります。 .

以上がC# アセンブリ内のすべてのクラスをプログラムで一覧表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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