你说的东西中哪里有非托管资源。你应该为有非托管资源的对象编写Dispose方法,该Close的Close,该Free的Free。

解决方案 »

  1.   

    这个私有静态类至少需要一个静态的Dispose吧。然后添加一个私有的空的单例类,在析构函数中调用这个Dispose。
      

  2.   

    一般是重载Dispose()方法,好好看一下这个方法是什么用的
      

  3.   

    首先谢谢各位的热心帮助。我是第一次用C#做东西,没怎么学习就开始用,有些茫然。
    非托管资源是密钥容器,而密钥容器是有文件和其他记录信息对应的。删除密钥容器的时候就会删除这些信息。
    每个密钥容器都会有一个私有类(程序集外不可见的类,该类有Dispose方法可以删除密钥容器)一直关联,而类的实例化对象由一个静态类管理(创建对象、查找对象,也有释放的方法,调用各对象的Dispose方法)。
    我希望的是在DLL卸载的时候调用静态类的释放方法,删除各个对象对应的密钥容器。
      

  4.   

    对于非托管的资源,系统都会提供一些方法去释放这些资源,如果Dispose,close等
      

  5.   

    现在,我给与密钥容器关联的类增加了析构函数,在析构函数里调用了Dispose方法清理资源。现在的代码似乎可以清理资源。只是,由于对象是在静态类里实例化(创建)的,不太确定对象的析构方法是不是一定能够调用到。如果肯定能调用到,问题也算是解决了。