如何在ASP.NET MVC中的应用程序生命周期中仅初始化和取消初始化一次

问题描述 投票:1回答:1

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

public static class MyClass
{
    static MyClass()
    {
        MyInitFirstTime();
    }        
c# asp.net asp.net-mvc asp.net-mvc-5
1个回答
1
投票

[静态类没有任何本机方法,但是您可以改用AppDomain DomainUnload事件:

public static class MyClass
{
    static MyClass()
    {
        AppDomain.CreateDomain("dummy").DomainUnload += CurrentDomain_DomainUnload;

        MyInitFirstTime();
    }

    private static void CurrentDomain_DomainUnload(object sender, EventArgs e)
    {
        // Free resources
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.