Получить типы в сборке (ошибка: System.Reflection.ReflectionTypeLoadException) - PullRequest
16 голосов
/ 22 мая 2011

Я получаю исключение типа «Сведения об исключении: 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: дополнительная информация, когда я запускаю действие перестроения, все процессы генерируются правильно, без ошибок.

Ответы [ 3 ]

22 голосов
/ 22 мая 2011

В сообщении об ошибке написано все, что вам нужно, действительно:

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
    }
}
4 голосов
/ 17 мая 2016

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

2 голосов
/ 18 мая 2014

Была ли DLL создана вами?На какие рамки вы ориентируетесь?

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

Есть много похожих проблем на форумах Unity .

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

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

...