Страницы

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

пятница, 30 ноября 2018 г.

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

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


Ответ

Лично мне кажется, что event AssemblyLoaded как раз и является "стандартным механизмом" для таких целей.
А как его применять - т.е все то, что написано у вас в вопросе, включая использование кастомных атрибутов и пометку сборок - это просто некоторый syntactic sugar, который так или иначе диспатчит AssemblyLoaded

Другое дело, что в общем случае задача выполнения нужного кода в момент загрузки некоторой сборки нетривиальна и корректно решается только с помощью module initializers.
Рекомендую к прочтению .Net: Running code when assembly is loaded, если есть еще вопросы, то готов ответить.

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

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