Я пытаюсь подражать примеру, полученному с использованием autofac, но постоянно получаю ошибку об отсутствии конструктора без параметров для моего контроллера. Что я делаю неправильно, если я создаю связыватель моделей для хранилища?
вот как выглядит загрузчик. вставленные здесь проверенные тестеры, как и в примере, не отражают действительное намерение. там будет отдельный тестовый проект.
Mock<iproductrepository> mock = new Mock<iproductrepository>();
mock.Setup(m => m.products).Returns(new List<product>()
{
new product() {name = "football", price = 25},
new product() {name = "surf board",price = 179},
new product() {name = "running shoes", price = 95}
}.AsQueryable()
);
builder.RegisterInstance(mock.Object).As<iproductrepository>();
builder.RegisterModelBinders(Assembly.GetExecutingAssembly());
builder.RegisterControllers(Assembly.GetExecutingAssembly());
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
а вот контроллер простой
public class productcontroller : Controller
{
private readonly iproductrepository _productrepository;
/// <summary>
///
/// </summary>
/// <param name="productrepository"></param>
public productcontroller(iproductrepository productrepository)
{
_productrepository = productrepository;
}
//
// GET: /product.controller/
public ViewResult list()
{
return View(_productrepository.products);
}
}
получаю эту ошибку
Для этого объекта не определен конструктор без параметров. Описание: Ан
необработанное исключение произошло во время выполнения текущей сети
запрос. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации о
ошибка и откуда она возникла в коде. Детали исключения:
System.MissingMethodException: конструктор без параметров не определен
для этого объекта. Ошибка источника: сгенерировано необработанное исключение
во время выполнения текущего веб-запроса. Информация относительно
происхождение и местонахождение исключения можно определить с помощью
трассировка стека исключений ниже. Трассировка стека: [MissingMethodException: Нет
Для этого объекта определен беспараметрический конструктор.]
System.RuntimeTypeHandle.CreateInstance (тип RuntimeType, логическое значение
publicOnly, Boolean noCheck, Boolean & canBeCached,
RuntimeMethodHandleInternal & ctor, Boolean & bNeedSecurityCheck) + 0
System.RuntimeType.CreateInstanceSlow (Boolean publicOnly, Boolean
skipCheckThis, Boolean fillCache) + 98
System.RuntimeType.CreateInstanceDefaultCtor (Boolean publicOnly,
Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean
fillCache) +241 System.Activator.CreateInstance (тип, логическое значение
непубличный) + 69
System.Web.Mvc.DefaultControllerActivator.Create (RequestContext
requestContext, Type controllerType) +67 [InvalidOperationException:
Произошла ошибка при попытке создать контроллер типа
'* .Productcontroller'. Убедитесь, что контроллер имеет