我已经(正确)连接了 Ninject 来绑定(bind) NLog。这是我的 NinjectMVC3.cs 中的 RegisterService 方法
kernel.Bind<ILogger>().To<NLogger>();
我正在尝试移植到 PetaPoco 并在此处创建了一个基本 Controller :
public class BaseController : Controller
{
protected PetaPoco.Database _database;
protected ILogger _logger;
protected MemberRepository _members;
public BaseController(ILogger logger)
{
_database = new PetaPoco.Database("TalentSiteConnection");
_members = new MemberRepository(_database);
_logger = logger;
}
}
当我像这样继承我的基本 Controller 时:
public class TestController : BaseController
{
public ActionResult Index()
{
TestViewModel model = new TestViewModel();
model.Member = _members.Single<Member>(2579);
return View("Index", model);
}
}
并尝试运行构建,我得到了
'BaseController' does not contain a constructor that takes 0 arguments
我做错了什么?我以为 Ninject 会解决对构造函数的依赖?
.
最佳答案
TestController 需要该构造函数...
public class TestController : BaseController
{
public TestController(ILogger logger) : base(logger) {}
...这与 NInject 无关。如果您向 BaseController 添加了一个无参数 ctor 并保持 TestController 不变,您将不会获得记录器注入(inject)。
关于asp.net-mvc-3 - MVC3 Controller 无法识别具有 Ninject 依赖项的基本 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10558400/