首页 > 解决方案 > 如何在 ASP.NET MVC 中的应用程序生命周期中只初始化和反初始化一次

问题描述

我有一个静态类,我需要在第一次使用的类期间初始化一些代码,并在应用程序进程终止时初始化。实际上,init 方法使用 PInvoke 方法调用本机 C++ api。我知道我可以使用静态构造函数,但现在我需要在最后调用本机 de-init 方法,

public static class MyClass
{
    static MyClass()
    {
        MyInitFirstTime();
    }        

标签: c#asp.netasp.net-mvcasp.net-mvc-5

解决方案


您可以使用Microsoft 记录的 Application_Start 和 Application_End “特殊方法”,而不是静态类。

Application_Start 和 Application_End 方法是不代表 HttpApplication 事件的特殊方法。ASP.NET 在应用程序域的生命周期内调用它们一次,而不是为每个 HttpApplication 实例调用一次。

另一种选择是覆盖HttpApplication.Dispose 方法Disposed 事件。如果您决定覆盖 Dispose(),请不要忘记调用基类 Dispose() 方法。


推荐阅读