Получить типы в сборке (ошибка: System.Reflection.ReflectionTypeLoadException)

Я получаю исключение типа "Сведения об исключении: System.Reflection.ReflectionTypeLoadException: невозможно загрузить один или несколько запрошенных типов. Получить дополнительную информацию об объекте LoaderExceptions". со следующим кодом:

public IEnumerable<Type> FindClassesOfType(Type assignTypeFrom, IEnumerable<Assembly> assemblies, bool onlyConcreteClasses = true)
    {
        foreach(var a in assemblies)
        {
            foreach (var t in a.GetTypes())

Мне нужно получить типы, определенные в каждой сборке, но кажется, что он не может быть сгенерирован.

Я уже выполнил все типичные процедуры, связанные с неправильным созданием сборки, удалив dll, очистив решение, перезагрузив решение и т.д., но ничего не произошло.

Я хотел бы запросить идеи для решения этой проблемы, найдя способ получить дополнительную информацию об ошибке или найти, что сборка создает проблемы или что-то в этом роде. Текущее сообщение об исключении настолько неопределенно, чтобы понять, в чем проблема.

Большое вам спасибо. ps: дополнительная информация, когда я запускаю операцию восстановления, весь процесс корректно генерируется без ошибок.

Ответ 1

В сообщении об ошибке говорится все, что вам нужно:

try {
    // your code
} catch (ReflectionTypeLoadException ex) {
    // now look at ex.LoaderExceptions - this is an Exception[], so:
    foreach(Exception inner in ex.LoaderExceptions) {
        // write details of "inner", in particular inner.Message
    }
}

Ответ 2

Была ли создана DLL? Какую структуру вы планируете?

Я столкнулся с этой проблемой только сейчас. Даже компилируя мои внешние библиотеки с фреймворком 3.5 (который использует CLR2), DLL не может быть импортирована. Ошибка была такой же, как у вас. Я решил свою проблему, перестраивая мою платформу таргетинга libs 3.0 и, похоже, сейчас работает. Я оставляю свои dll в папке Plugins без проблем.

В форумах Unity есть много подобных проблем.

Возможно, у вас уже есть решение, но это может помочь любому, кому это нужно в будущем (как и мне нужно).

С наилучшими пожеланиями!

Ответ 3

Если вы используете инфраструктуру Entity Framework, проверьте, соответствует ли версия в Web.Config той же ссылке в вашем проекте.