Страницы

Поиск по вопросам

четверг, 26 декабря 2019 г.

Точка входа в .NET dll

#net


Существует ли стандартный механизм, с помощью которого можно было бы автоматически
выполнять определённый код при загрузке сборки в домен? Понятно, что реализовать такое
несложно (пометить сборки своим атрибутом, указывающим тип, в статический конструктор
которого следует поместить код инициализации, подписаться на AppDomain.CurrentDomain.AssemblyLoaded
и дёргать в обработчике указанный тип, если сборка помечена), но всё же хотелось бы
использовать стандартный механизм, если есть.    


Ответы

Ответ 1



Лично мне кажется, что event AssemblyLoaded как раз и является "стандартным механизмом" для таких целей. А как его применять - т.е все то, что написано у вас в вопросе, включая использование кастомных атрибутов и пометку сборок - это просто некоторый syntactic sugar, который так или иначе диспатчит AssemblyLoaded. Другое дело, что в общем случае задача выполнения нужного кода в момент загрузки некоторой сборки нетривиальна и корректно решается только с помощью module initializers. Рекомендую к прочтению .Net: Running code when assembly is loaded, если есть еще вопросы, то готов ответить.

Комментариев нет:

Отправить комментарий