Я пытаюсь использовать Ninject и OpenAccess в первый раз. Пожалуйста, помогите мне в следующем. Вот как выглядит мой проект...
public class ContentController : Controller
{
private ContentService contentSvc;
public ContentController(ContentService contentSvc)
{
this.contentSvc = contentSvc;
}
}
Следующий класс находится под папкой в моем веб-приложении.
public class ContentService
{
private IContentRepository contentRepository;
public ContentService(IContentRepository contentRepository)
{
this.contentRepository = contentRepository;
}
public void InsertContent(Content content)
{
contentRepository.InsertContent(content);
}
}
Следующий репозиторий принадлежит отдельной сборке.
public class ContentRepository : IContentRepository
{
DBContext db;
public ContentRepository(DBContext _db)
{
db = _db;
}
public void InsertContent(Content content)
{
db.Add(content);
}
}
Вот как выглядит привязка Ninject..
kernel.Bind<ContentService>().To<ContentService>().InRequestScope();
kernel.Bind<IContentRepository>().To<ContentRepository>().InRequestScope().WithConstructorArgument("_db", new DBContext());
Все работает нормально, если я получаю одну страницу за раз. Я использую простой инструмент "XENU" для извлечения нескольких страниц одновременно. Это когда я получаю ошибки с DBContext путем выборки нескольких страниц за раз.
Я не уверен, что Ninject предлагает DBContext в каждом запросе? Я получаю разные ошибки, например. 'Ссылка на объект не установлена в экземпляр объекта.', OR 'ExecuteReader требует открытого и доступного соединения. Состояние текущего соединения открыто. '
P.S.
У меня есть ContentService под папкой в моем веб-приложении MVC. ContentRepository - отдельная сборка. Я буду добавлять бизнес-логику в ContentService и использовать "ContentRepository" только для операций CRUD. Также, пожалуйста, дайте мне знать, хорошо ли эта архитектура, или есть лучший способ создания сервисов и репозиториев.