Автоматически запускать код на ссылочной сборке во время запуска? Как это называется?

В .NET есть что-то, что может автоматически запускать кусок кода в указанной сборке при загрузке сборки.

Например, вы можете иметь класс, украшенный каким-то атрибутом, который живет в проекте Foo (Библиотека классов). А Project Bar (Веб-приложение) просто ссылается на проект Foo. Когда Bar загружается, этот украшенный код в Foo запускается как-то. Я считаю, что это более новая функция.

Может кто-нибудь сказать, что называется этой функцией?

Обновление: Спасибо Shiva! Не инициализировать модуль. Хотя это привело меня к правильному ответу. PreApplicationStartMethod и поддерживается в .NET! Спасибо всем!

Ответы

Ответ 2

Вы случайно используете модуль Initializer? Они способны описать вещи, но кажется, что они не поддерживаются в С#. Они являются частью CLR да, но не являются частью языка С#.

Некоторые ссылки с дополнительной информацией и исследованиями:

http://blogs.msdn.com/b/junfeng/archive/2005/11/19/494914.aspx

Инициализаторы модулей на С#

.Net: запуск кода при загрузке сборки - благодаря J... для указания этой ссылки

Ответ 3

Возможно, вы также посмотрели Fody. Fody - это "Расширяемый инструмент для плетения .net-сборок", который вы можете установить как пакет nuget. Существует надстройка для fody, называемая Инициализаторы модулей. Что под капотом использует в других ответах уже упомянутые инициализаторы модулей, но убирает переполнение.

Из документации:

Что он делает: Находит класс в целевой сборке с именем ModuleInitializer со следующей формой:

public static class ModuleInitializer
{
    public static void Initialize()
    {
        //Init code
    }
}

Затем он вводит следующий код в инициализатор модуля целевой сборки. Этот код вызывается, когда сборка загружается в память

static <Module>()
{
    ModuleInitializer.Initialize();
}

Ответ 4

Если вы не ошибаетесь, вы ищете "Инициализатор модуля". Проверьте этот вне