MVC 3, передающий объект как Интерфейс

В настоящее время я работаю над проектом MVC 3, используя Ninject в качестве DI, бизнес-объекты хранятся в отдельной сборке. У меня проблема с параметрами контроллера, при отправке обратно для операций CRUD я получаю сообщение об ошибке «Невозможно создать экземпляр интерфейса». Я знаю, что вы не можете создать экземпляр интерфейса, но похоже, что единственный способ обойти это - использовать настраиваемый связыватель модели и передать FormCollection. Это кажется действительно беспорядочным, и я хочу, чтобы в проекте было как можно больше кода, специфичного для типа, - следовательно, интерфейсы повсюду, а Ninject to DI - конкретные. Привязка пользовательской модели не только кажется беспорядочной - разве я не потеряю свои DataAnnotations?

Некоторый код для описания того, что у меня есть:

public ActionResult Create()
{
    // I'm thinking of using a factory pattern for this part
    var objectToCreate = new ConcereteType();
    return (objectToEdit);
}

[HttpPost]
public ActionResult Create(IRecord record)
{
    // check model and pass to repository
    if (ModelState.IsValue)
    {
        _repository.Create(record);
        return View();
    }

    return View(record);
}

Кто-нибудь сталкивался с этим раньше? Как вы это пережили?

Спасибо!

5
задан Paul Aldred-Bann 8 January 2013 в 14:49
поделиться