Я пытаюсь использовать 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 в каждом ЗАПРОСЕ?? Я получаю разные ошибки, например. «Ссылка на объект не указывает на экземпляр объекта.», ИЛИ «ExecuteReader требует открытого и доступного подключения. Текущее состояние соединения открыто.
У меня есть ContentService в папке в моем веб-приложении MVC. ContentRepository — это отдельная сборка. Я буду добавлять бизнес-логику в ContentService и использовать ContentRepository только для операций CRUD. Кроме того, пожалуйста, дайте мне знать, подходит ли эта архитектура или есть ли лучший способ создания сервисов и репозиториев.