В настоящее время я работаю над проектом 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);
}
Кто-нибудь сталкивался с этим раньше? Как вы это пережили?
Спасибо!