Получить типы в сборке (ошибка: 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 той же ссылке в вашем проекте.