我在一个Web服务中实例化了一个类,其中静态成员保存了一些资源。如果我不是静态地持有这些资源,我可能会通过某个IDisposable对象访问它们,在Dispose时释放资源。无论是否保留此会话是一个好主意,.NET是否提供任何方法在类型被静态析构时调用任何清理代码?
请不要回答任何类似于“停止在静态成员变量中保存资源”的问题。我理解静态保留此信息的缺点,并愿意接受后果(我们正在使用它来将处理时间从58小时减少到4小时,用于某些批处理)。该问题具体是:在这种情况下,是否有办法可以很好地清除这些资源?
编辑: 我知道这个类将在进程的剩余生命周期内存在,但是使用静态构造函数,.NET提供了在将该类型加载到内存中时执行某些操作的机会。是否可以在相反的端口上执行任何操作?
请不要回答任何类似于“停止在静态成员变量中保存资源”的问题。我理解静态保留此信息的缺点,并愿意接受后果(我们正在使用它来将处理时间从58小时减少到4小时,用于某些批处理)。该问题具体是:在这种情况下,是否有办法可以很好地清除这些资源?
编辑: 我知道这个类将在进程的剩余生命周期内存在,但是使用静态构造函数,.NET提供了在将该类型加载到内存中时执行某些操作的机会。是否可以在相反的端口上执行任何操作?
AppDomain.DomainUnload
,但我强烈建议不要这样做。 - Jon Skeet