Ninject автоматически вызовет метод Dispose для объектов, реализующих IDisposable
(по крайней мере, так было, когда я тестировал его с последней версией).Если это не произойдет для вас, я подозреваю, что проблема в том, что вы никогда не используете этот DonorContext
в своем приложении.Таким образом, он никогда не создается и никогда не избавляется.Например, если у вас есть контроллер, который принимает этот контекст в качестве аргумента конструктора:
public class HomeController: Controller
{
private readonly DonorContext _context;
public HomeController(DonorContext context)
{
_context = context;
}
public ActionResult Index()
{
return View();
}
}
Это должно работать.Это также будет работать, если у вас есть сервисный уровень, который принимает этот контекст в качестве аргумента конструктора, а затем вы используете этот сервис в контроллере (с внедрением конструктора).В конце дня у вас должен быть контроллер, который принимает некоторую зависимость, которая сама может быть DonorContext или какой-то другой зависимостью, которая сама зависит от DonorContext (хранилище, служба, ...) для запуска цепочки внедрения зависимости.
Имеется в виду, что работа с конкретным типом, таким как DonorContext в вашем контроллере, в некоторой степени побеждает цель использования Dependency Injection, поскольку вы жестко его кодируете.