Я новичок в Autofac и IoC, поэтому сейчас я пытаюсь создать свое первое приложение ASP.NET MVC 3 с IoC.
Вот с этим кодом я пытаюсь вручную зарегистрировать ProductController (в Global.asax).
protected void AutofacIocRegistration()
{
var builder = new ContainerBuilder();
//PRODUCT CONTROLLER
var registration = builder.Register(c => new ProductsController(c.Resolve<IProductRepository>()));
builder.RegisterType<ProductsController>().InstancePerHttpRequest();
SqlProductsRepository productRepository = new SqlProductsRepository(DATABASE_CONNECTION);
builder.RegisterInstance(new ProductsController(productRepository));
IContainer container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}
Когда я создаю приложение в первый раз, я получаю список из 4 продуктов на странице HTML (как я и ожидал), но когда я обновляю страницу или перехожу к следующему списку продуктов, я получаю сообщение об ошибке
Один экземпляр контроллера
'WebUI.Controllers.ProductsController'
не может использоваться для обработки нескольких
Запросы. Если пользовательский контроллер
завод используется, убедитесь, что он
создает новый экземпляр
контроллер для каждого запроса.
Как вы можете видеть в этом коде
builder.RegisterType<ProductsController>().InstancePerHttpRequest();
Я пытаюсь решить эту проблему с помощью метода InstancePerHttpRequest (), но безуспешно, если у вас есть предложения, пожалуйста, напишите.
Спасибо за любую помощь заранее.