我已经连接Ninject(正确)绑定NLog。这是我的NinjectMVC3.cs中的RegisterService方法
kernel.Bind<ILogger>().To<NLogger>();
我正在尝试移植到PetaPoco并在此处创建了一个基本控制器:
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;
}
}
当我像这样继承我的基本控制器时:
public class TestController : BaseController
{
public ActionResult Index()
{
TestViewModel model = new TestViewModel();
model.Member = _members.Single<Member>(2579);
return View("Index", model);
}
}
并尝试运行构建我正在获取
'BaseController'不包含带0参数的构造函数
我做错了什么?我以为Ninject会解决对构造函数的依赖吗?
答案 0 :(得分:4)
TestController需要那个ctor ......
public class TestController : BaseController
{
public TestController(ILogger logger) : base(logger) {}
......这与NInject无关。如果你将一个无参数的ctor添加到BaseController并按原样保留你的TestController,你将无法获得记录器注入。