Добавить обработчик запуска приложения вручную в конструкторе

В Globalв качестве альтернативы приложению AutoEventWireupsкажется, что события выставляются для большинства базовых событий приложения (BeginRequest, AuthorizeRequest, Error., и т. д. ), а также набор асинхронных методов, таких как AddOnBeginRequestAsyncи т. д. Однако я не могу найти эквивалентное событие для ApplicationStart!

Итак, мой вопрос: можно ли как-то подписаться на «то же самое» событие, к которому подключен метод AutoEventWireupApplication_(On)Start?

public class Global : HttpApplication
{
    public Global()
    {
        // I can do this...
        base.BeginRequest += new EventHandler(Global_BeginRequest);
        // Or even AddOnBeginRequestAsync();

        // But how can I do this?
        base.ApplicationStart += new EventHandler(GlobalApplication_Start);
    }

    protected void Global_BeginRequest(object sender, EventArgs e)
    {
      //...
    }

    protected void Global_ApplicationStart(object sender, EventArgs e)
    {
      //...
    }
}

(Ради интереса... есть ли способ отключить AutoEventWireupsв Global.asax?. Использование атрибута AutoEventWireup = "false" работает только на страницах aspx )

. Изменить-кажется, что ApplicationStart и ApplicationEnd «являются специальными методами, которые не представляют события HttpApplication ». Так что, возможно, я лаю не по тому дереву.

Изменить Re :Зачем мне это? К сожалению, у корпоративного клиента есть структура, в соответствии с которой новые приложения должны наследовать свой пользовательский класс HttpApplication, и FWR, их HttpApplicationуже внедрил автоподключение Application_(On)Start, а это означает, что мне нужно было найти другой способ переопределить Проводка фреймворка, чтобы я мог загрузить свой контейнер IoC и карты Automapper. Согласно ответу Ллойда, я также мог бы загрузиться в ctor или Init(), хотя это не совсем то же самое . В конечном итоге я смог изменить корпоративную структуру, чтобы разрешить несколько подписок.

5
задан Community 23 May 2017 в 10:09
поделиться