114

アセンブリ内のすべてのクラスのリストを(プログラムで-C#で)出力したいと思います。

これを行うためのヒントやサンプルコードはありますか?反射?

4

2 に答える 2

170

を使用しAssembly.GetTypesます。例えば:

Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
    Console.WriteLine(type.FullName);
}
于 2009-08-22T10:01:22.513 に答える
108

ジョンの例に追加したいだけです。独自のアセンブリへの参照を取得するには、次を使用できます。

Assembly myAssembly = Assembly.GetExecutingAssembly();

System.Reflection名前空間。

参照していないアセンブリを調べたい場合は、次のいずれかを使用できます。

Assembly assembly = Assembly.ReflectionOnlyLoad(fullAssemblyName);
Assembly assembly = Assembly.ReflectionOnlyLoadFrom(fileName);

タイプが見つかったらインスタンス化する場合は、次のようにします。

Assembly assembly = Assembly.Load(fullAssemblyName);
Assembly assembly = Assembly.LoadFrom(fileName);

詳細については、Assembly クラスのドキュメントを参照してください。

Assemblyオブジェクトへの参照を取得したら、assembly.GetTypes()Jon が既に示したように使用できます。

于 2009-08-22T10:11:59.733 に答える