Для этой демонстрации я создал поддельный репозиторий базы данных +, как показано ниже
Поддельный дб + репозиторий
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);
}
}
Ninject Part
Я установил ninject из NUGet и добавил приведенный ниже код для разрешения хранилищ
kernel.Bind<IDemoRepository>().To<DemoRepository>()
Ninject не вызывает DemoRepository.Dispose
, я добавил точку останова, даже мой текущий код выдает ошибку, но Ninject этоне звонит DemoRepository.Dispose
.
Может ли какой-либо орган подсказать мне, как распоряжаться объектом.