У меня есть рабочий проект Visual Studio, который я хочу запустить на Mac с Mono и MonoDevelop.Проект представляет собой приложение ASP.NET MVC 3 с Ninject MVC, которое в основном внедряет в контроллер некоторые реализации интерфейса.
После добавления всех dll ASP.NET MVC и зависимостей Ninject в проект он успешно компилируется.Но когда я запускаю его, у меня появляется ошибка:
Конструктор по умолчанию не найден для типа WebActivatorTest.Controllers.HomeController.
Мой контроллер имеет следующий код:
public class HomeController : Controller
{
INotifier _notifier;
public HomeController(INotifier notifier_)
{
_notifier = notifier_;
}
public ActionResult Index()
{
ViewBag.Name = _notifier.Person();
return View();
}
}
Я не хочу иметь пустой конструктор, потому что теперь у меня есть код AppStart, регистрирующий мой интерфейс:
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<WebActivatorTest.Models.INotifier>().To<WebActivatorTest.Models.Notifier>();
}
Этот код отлично работает в Windows / Visual Studio, но не работает в Mono.Может ли кто-нибудь помочь мне?
Полная ошибка:
Server Error in '/' Application
Default constructor not found for type WebActivatorTest.Controllers.HomeController.
Description: HTTP 500. Error processing request.
Stack Trace:
System.MissingMethodException: Default constructor not found for type WebActivatorTest.Controllers.HomeController.
at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0
at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0
at System.Web.Mvc.DefaultControllerFactory+DefaultControllerActivator.Create (System.Web.Routing.RequestContext requestContext, System.Type controllerType) [0x00000] in <filename unknown>:0
Version information: Mono Runtime Version: 2.10.9 (tarball Tue Mar 20 15:31:37 EDT 2012); ASP.NET Version: 4.0.30319.1