При попытке создать обьект через контейнер Ninject вылетает exception : Object reference not set to an instance of an object. Подскажите, пожалуйста, в чем может быть проблема?
Метод с класса NinjectDependencyResolver
private void AddBindings()
{
var mapperConfiguration = new MapperConfiguration(cfg =>
{
cfg.AddProfile(new TagProfile());
});
var mapper = mapperConfiguration.CreateMapper();
_kernel.Bind
var repository = _kernel.Get
Класс Repository
public class Repository
public Repository(BlogDbContext db)
{
_db = db;
}
}
P.S. Не знаю важно ли это, но репозиторий с его интерфейсом находится в одной сборке, а регистрация Ninject в другой.
Ответ
Ошибка говорит о том, что в экземпляре объекта не задана ссылка на объект.
Object reference not set to an instance of an object.
В этих двух строчках
_kernel.Bind
Вы "говорите" IoC-контейнеру, что при запросе IRepository
Правильным будет следующий вызов.
_kernel.Bind
Вы сообщаете IoC-контейнеру, что при запросе IRepository
И ответ на вопрос из комментария:
для контекста делаю InRequestScope(), нужно ли мне это делать и для
репозитория и для сервиса?
Для репозитория и Сервиса не нужно делать InRequestScope(), только для контекста BlogDbContext
UPD
Не знаю важно ли это, но репозиторий с его интерфейсом находится в
одной сборке, а регистрация Ninject в другой.
Не важно, главное указать ссылка на сборку в которой лежит репозиторий и интерфейсы
Комментариев нет:
Отправить комментарий