虽然关于 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;
}
}
我希望这可以为您解决一些问题:)