В нашем приложении (решение с 65 проектами) все ссылочные сборки анализируются во время выполнения для наличия модулей Ninject (применяется некоторая фильтрация слишком). Модули загружаются позже в ядро Ninject, и каждый модуль объявляет привязки для ядра.Метод не имеет реализации при загрузке сборок в новый AppDomain в режиме ReflectionOnly
Мы приняли загрузчик, который загружает ссылочные сборки в отдельный сборник только в режиме отражения. Разница в том, что Ninject может загружать сборки из каталога, заключается в том, что каталог может содержать сборки с модулями, которые не должны загружаться. А также с самого начала загружаются не все ссылочные сборки.
Проблема заключается в том, что loader (кредит Sacha Barber) не может загрузить некоторые узлы с
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information
и LoaderExceptions
с одной записью:
Method 'BeforeLoad' in type 'Lekis.AppBase.Core.BLLBaseCore' from assembly 'AppBaseCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
Вот некоторые "забавные" факты :
- метод
BeforeLoad
является виртуальным и реализуется метода интерфейса - на прошлой неделе исключение загрузчика означало, что у другого метода не было реализации (этот метод не был виртуальным), а позже, когда я его явно реализовал, сообщение сообщило, что метод не найден.
- на прошлой неделе целевая основа для сборки
AppBaseCore
был .NET 3.5 и 3 сборки не удалось загрузить - теперь целевая основа для сборки
AppBaseCore
является .NET 4 и 5 сборок не удалось загрузить - все в порядке с приложением в противном случае
Нет ничего плохого (очевидно) с сборками, когда я проверил их с помощью ILSpy и ILDAsm.
На данный момент я действительно потерян и не знаю, как подойти к этой проблеме.
Любая помощь приветствуется.
Благодаря
«метод' BeforeLoad' является виртуальным и реализует интерфейсный метод ». правда, правда? Проверьте [все ответы здесь] (http://stackoverflow.com/questions/948785/), чтобы убедиться, что вы не сталкиваетесь с конфликтом версий и загрузки.ILSpy/ILDAsm не сообщают о каких-либо проблемах, поскольку сборка является структурно обоснованной. –
Спасибо, @JeroenMostert. Я посмотрю на это. –