Внедрение зависимостей в StructureMap ... что я делаю не так? - PullRequest
1 голос
/ 25 октября 2011

У меня есть простое веб-приложение MVC3. Я использую StructureMap в качестве инъекции зависимостей.

Он отлично работает с моим HomeController, но когда я иду на второй контроллер, у меня есть эта ошибка: MissingMethodException: нет конструктора нулевых параметров.

Я следовал каждому шагу, который нашел в уроках ...

Thx.

Вот код:

public class HomeController : AuthorizedController
{
    IRepository<User> _repository;

    public HomeController(IRepository<User> repository)
    {
        _repository = repository;
    }
}


public class AccountController : AuthorizedController
{
    private readonly IRepository<User> _repository;

    public AccountController(IRepository<User> repository)
    {
        _repository = repository;
    }
}

И я использую эту простую инъекцию:

For<IRepository<User>>().Use<UserRepository>();

1 Ответ

0 голосов
/ 25 октября 2011

Вы уверены, что он работает с HomeController?если у вас есть ошибка для второго контролера, то ошибка должна присутствовать для HomeController?

Убедитесь, что ваш базовый контроллер AuthorizedController имеет открытый конструктор без параметров

Если вы не определите конструктор для класса, будет создан конструктор без параметров.Однако если вы определите конструктор с параметрами, конструктор без параметров не будет создан.

Фабрика контроллеров MVC ASP.net - System.Web.Mvc.DefaultControllerFactory.CreateController требуетсяконструктор без параметров

...