Чтобы загрузить сборку и затем получить список всех типов:
Assembly assembly = Assembly.ReflectionOnlyLoadFrom("System.Core.dll");
Type[] types = assembly.GetTypes();
К сожалению, это вызовет исключение, если любой из представленных типов не может быть загружен, и иногда этого сбоя загрузки невозможно избежать. В этом случае, однако, выброшенное исключение содержит список всех типов, которые были успешно загружены, и поэтому мы можем просто сделать это:
Assembly assembly = Assembly.ReflectionOnlyLoadFrom("System.Core.dll");
Type[] types;
try
{
types = assembly.GetTypes();
}
catch (ReflectionTypeLoadException ex)
{
types = ex.Types;
}
Это даст вам список всех типов, включая интерфейсы, структуры, перечисления и т. Д. (Если вам нужны только классы, вы можете отфильтровать этот список).