C #: список всех классов в сборке - PullRequest
91 голосов
/ 22 августа 2009

Я хотел бы вывести (программно - C #) список всех классов в моей сборке.

Любые подсказки или пример кода, как это сделать? Отражение

Ответы [ 2 ]

134 голосов
/ 22 августа 2009

Использование Assembly.GetTypes. Например:

Assembly mscorlib = typeof(string).Assembly;
foreach (Type type in mscorlib.GetTypes())
{
    Console.WriteLine(type.FullName);
}
94 голосов
/ 22 августа 2009

Я просто хотел бы добавить к примеру Джона. Чтобы получить ссылку на собственную сборку, вы можете использовать:

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.GetTypes(), как уже продемонстрировал Джон.

...