Как вы можете добавить дополнительную логику для разрешения типов во время выполнения? - PullRequest
2 голосов
/ 23 сентября 2008

Есть ли общий способ, без создания и управления вашим собственным хостом CLR, взять на себя поиск и загрузку типа, если этот тип не найден?

Ниже приведен только пример. Если вы спешите стать первым ответом, не предлагайте новую платформу надстроек или MEF в качестве решения моего вопроса.

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


Насколько я могу судить (если у кого-то нет работающего примера), ни одно из упомянутых выше событий AppDomain не срабатывает, когда тип не найден.


Подождите, очевидно это работает ! Не уверен, что я сделал не так раньше, но это событие срабатывает хорошо и хорошо.

Ответы [ 2 ]

4 голосов
/ 23 сентября 2008

В AppDomain есть события, которые вы можете использовать.

Вы бы хотели TypeResolve событие и, возможно, AssemblyResolve событие.

Кроме того, вы можете прочитать больше о том, как среда выполнения .net разрешает сборки , поэтому вы можете определить эту информацию в разделе исследования.

0 голосов
/ 23 сентября 2008

Разве это не возможно только при использовании событий AppDomain?

...