在 ASP Net Core 中使用依赖注入时,可以使用 dispose 方法释放资源。在控制器中注入的服务实现 IDisposable 接口后,可以在该实例的生命周期结束时自动调用 dispose 方法。以下是示例代码:
public class MyService : IDisposable
{
private bool _disposed;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!_disposed)
{
if (disposing)
{
// 释放已经注入的服务
}
_disposed = true;
}
}
}
public class HomeController : Controller
{
private readonly MyService _myService;
public HomeController(MyService myService)
{
_myService = myService;
}
// 在控制器中使用 MyService
// ...
protected override void Dispose(bool disposing)
{
if (disposing)
{
_myService.Dispose();
}
base.Dispose(disposing);
}
}