在汇编(dll库)加载时执行init函数,在卸载时执行清理函数

时间:2014-07-14 22:36:53

标签: c# dll .net-assembly

我在C#中有一个动态链接库,将由其他库或应用程序加载。在加载程序集(dll)时需要调用init函数来分配/初始化资源,并且在卸载程序集之前需要调用清理函数。

我在C#中寻找类似于C ++中DllMain函数的东西,你可以在DLL_PROCESS_ATTACHDLL_PROCESS_DETACH的情况下调用函数。

提前致谢。

1 个答案:

答案 0 :(得分:0)

这取决于您的情况。

您可以在静态构造函数中使用AppDomain.ProcessExit事件。

类似的东西:

 class MyClass  {    
      static MyClass() {
           AppDomain.CurrentDomain.ProcessExit +=
               MyClass_Dtor;    }

       static void MyClass_Dtor(object sender, EventArgs e) {
            // do here some clean up   
  } 
}

不保证会调用AppDomain.ProcessExit。

在此处查看有关AppDomain.ProcessExit的更多详细信息

AppDomain.ProcessExit