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