Rus*_*ova 4 c# idisposable ninject entity-framework-4 asp.net-mvc-3
对于这个Demo,我创建了一个虚假的Database +存储库,如下所示
 public interface IDemoRepository
    {
        string[] GetUsers();
    }
    public class DemoRepository : IDemoRepository, IDisposable
    {
        public string[] GetUsers()
        {
            string[] Users = { "Robert","Linda","Jack"};
            return Users;
        }
        public void Dispose()
        {
            //do nothing     
            throw new Exception("Disposed is called");       
        }
    }
 public class TestController:Controller
    {
        protected IDemoRepository _repository;
        public BaseController(IDemoRepository repository)
        {
            _repository = repository;
        }
        public ActionResult()
       {  
             var users = _repository.GetUsers();
             Return View(users);
       }
    }
我从NUGet安装了ninject并在下面添加了用于解析存储库的代码
kernel.Bind<IDemoRepository>().To<DemoRepository>()
Ninject没有调用DemoRepository.Dispose,我添加了一个断点,即使我当前的代码抛出错误但是Ninject没有调用DemoRepository.Dispose.
任何人都能建议我如何处置这个物体.
如果要处理,请确保您的存储库绑定到Ninject中的请求范围:
kernel.Bind<IDemoRepository>().To<DemoRepository>().InRequestScope();