4

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

angry
  • 8,677
  • 18
  • 74
  • 182
Modus
  • 8,885
  • 26
  • 66

1 Answers1

3

Лично мне кажется, что event AssemblyLoaded как раз и является "стандартным механизмом" для таких целей.

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


Другое дело, что в общем случае задача выполнения нужного кода в момент загрузки некоторой сборки нетривиальна и корректно решается только с помощью module initializers.

Рекомендую к прочтению .Net: Running code when assembly is loaded, если есть еще вопросы, то готов ответить.

M. Williams
  • 23,562