C# リフレクションを使用して、名前空間内のすべてのクラスにアクセスします
C# では、リフレクションを通じて名前空間内のすべてのクラスを取得するには、慎重な検討が必要です。クラスが指定された名前空間内にのみ存在する Java とは異なり、C# 名前空間は複数のアセンブリにまたがることができます。
名前空間内のクラスの完全なリストを取得するには、次の手順に従います:
Assembly.GetExecutingAssembly().GetTypes()
を使用して実現できます。 where t.IsClass && t.Namespace == nspace
のような構造を使用してフィルタリングします。 次のコードは、このアプローチを効果的に使用しています:
<code class="language-csharp">string nspace = "..."; var q = from t in Assembly.GetExecutingAssembly().GetTypes() where t.IsClass && t.Namespace == nspace select t; q.ToList().ForEach(t => Console.WriteLine(t.Name));</code>
このコードは、アセンブリ内のすべての型を反復処理し、指定された名前空間内のクラスを選択します。次に、クラス名をコンソールに出力します。 これは現在実行中のアセンブリに限定されることに注意してください。 他のアセンブリのクラスにアクセスするには、コードを変更してそれらのアセンブリへの参照を含める必要があります。
以上がC# でリフレクションを使用して名前空間内のすべてのクラスにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。