[C#] 名前空間内の型(クラス)をリフレクションで列挙する方法

[C#] 名前空間内の型(クラス)をリフレクションで列挙する方法

C# で任意の名前空間内の型を列挙したい

名前空間に存在する型を列挙したい場合、リフレクションを使えば実現できます。

アセンブリ内の型情報(Type)を列挙して、型名や名前空間でフィルタするイメージです。

実装方法

  1. Assembly.GetExecutingAssembly() で実行中のアセンブリを取得
  2. Assembly.GetTypes() でアセンブリ内の型情報(Type)を列挙
  3. Type.Namespace で型の名前空間や型名を取得

この手順で欲しい型を取得します。

例えば SampleApp プロジェクトの Program クラスだと以下のような感じで出力されると思います。

FullName: SampleApp.Program, Namespace: SampleApp, Name: Program

もし任意の名前空間内の型を列挙したい場合、Namespace プロパティで絞り込めばよいです。Type クラスが IsClass プロパティのような型なのかを示すプロパティを保持しているので、これを使ってクラスだけに絞り込んだりもできます。

以上。

参考URL

C#カテゴリの最新記事