如果我让一个控制器实现
IDisposable
接口,我会认为Dispose
方法不会被垃圾回收器调用。这意味着我需要添加以下代码:public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected override void Dispose(bool disposing)
{
if (!isDalDisposed)
{
isDalDisposed = true;
if (disposing)
DAL.Dispose();
}
base.Dispose(disposing);
}
我看到使用 Object.Finalize
是不好的做法,应该尽可能避免。
我的问题是,“服务”是在默认构造函数中创建的,这不允许我使用 using
语句来控制每个服务的生命周期。那么,处理这个问题的正确方法是什么?