Как переопределить привязку модели по умолчанию ASP.NET MVC 3 для разрешения зависимостей (с помощью ninject) во время создания модели?

У меня есть приложение ASP.NET MVC 3, которое использует Ninject для разрешения зависимостей. Все, что мне нужно было сделать до сих пор, - это унаследовать глобальный файл от NinjectHttpApplication , а затем переопределить метод CreateKernel для отображения моих привязок зависимостей. После этого я могу включать зависимости интерфейса в свои конструкторы контроллера MVC, и ninject сможет их разрешить. Все это здорово. Теперь я хотел бы разрешить зависимости в связывателе модели, когда он создает экземпляр моей модели, но я не знаю, как это сделать.

У меня есть модель представления:

public class CustomViewModel
{
    public CustomViewModel(IMyRepository myRepository)
    {
        this.MyRepository = myRepository;
    }

    public IMyRepository MyRepository { get; set; }

    public string SomeOtherProperty { get; set; }
}

Затем у меня есть действие метод, который принимает объект модели представления:

[HttpPost]
public ActionResult MyAction(CustomViewModel customViewModel)
{
    // Would like to have dependency resolved view model object here.
}

Как мне переопределить привязку модели по умолчанию, чтобы включить ninject и разрешить зависимости?

7
задан Chev 27 June 2011 в 04:15
поделиться