Хотя о методе AppInitialize () очень мало документации, вы правы, если предположите, что любой класс в папке App_Code, содержащий сигнатуру метода, подобную этой:
public static void AppInitialize()
будет вызвано при запуске приложения Asp.Net. Помните, что App_Code - это специальная папка для Asp.Net, и все внутри нее обрабатывается немного по-другому. Удачи в поиске документации по всем мелочам (вроде вышеупомянутых) папки App_Code.
Однако следует помнить, что только один класс может содержать сигнатуру для метода AppInitialize (), иначе вы получите ошибку компилятора во время выполнения, подобную этой:
Метод AppInitialize определен
как в 'App_Code.SomeClassOne', так и в
'App_Code.SomeClassTwo'.
Так что пока это совершенно верно:
public class SomeClassOne
{
public static void AppInitialize()
{
HostingEnvironment.Cache["InitializationTimeOne"] = DateTime.Now;
}
}
Это приведет к ошибке компилятора, о которой я упоминал выше:
public class SomeClassOne
{
public static void AppInitialize()
{
HostingEnvironment.Cache["InitializationTimeOne"] = DateTime.Now;
}
}
public class SomeClassTwo
{
public static void AppInitialize()
{
HostingEnvironment.Cache["InitializationTimeTwo"] = DateTime.Now;
}
}
Надеюсь, это немного прояснит для вас:)