Как добавить дополнительную логику для разрешения типов во время выполнения?
Вопрос
Существует ли общий способ без создания и управления собственным хостом CLR взять на себя поиск и загрузку типа, если этот тип не найден?
Ниже приведен лишь пример.Стремясь получить первый ответ, не предлагайте новую платформу надстроек или MEF в качестве решения моего вопроса.
Примером может служить образец с надстройками.Ваше приложение считывает файл, в котором перечислены типы, используемые для определенной функции.Приложение пытается создать экземпляры этих типов.Если они еще не загружены в домен приложения, метод завершится неудачно.Я ищу событие, которое могу обработать, или компонент, для которого я могу предоставить собственную реализацию, которая позволит мне корректно обрабатывать эти ситуации и предоставлять дополнительную логику для загрузки этих сборок.
Насколько я могу судить (если у кого-то нет работающего примера), ни одно из упомянутых до сих пор событий AppDomain не срабатывает, когда тип не найден.
Подожди, видимо это работает!Не знаю, что я сделал не так раньше, но это событие работает хорошо и хорошо.
Решение
Есть мероприятия на Домен приложения что вы можете использовать.
Вы хотели бы ТипРазрешить событие и, возможно, СборкаРешить событие.
Также вы можете прочитать больше о том, как Среда выполнения .net разрешает сборки, поэтому вы можете определить эту информацию в разделе зондирования.
Другие советы
Разве это невозможно, просто используя события AppDomain?