2 Stimmen

MVC3-Controller erkennt Basiskontroller mit Ninject-Abhängigkeit nicht

Ich habe Ninject (korrekt) an NLog angebunden. Hier ist meine RegisterService-Methode in meiner NinjectMVC3.cs

kernel.Bind().To();

Ich versuche, zu PetaPoco zu wechseln und habe hier einen Basiskontroller erstellt:

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;
    }
}

Wenn ich meinen Basiskontroller ableite, wie folgt:

public class TestController : BaseController
{        
    public ActionResult Index()
    {
        TestViewModel model = new TestViewModel();
        model.Member = _members.Single(2579);
        return View("Index", model);
    }

}

und versuche eine Build auszuführen, erhalte ich eine

'BaseController' enthält keinen Konstruktor, der 0 Argumente akzeptiert

Was mache ich falsch? Ich dachte, Ninject würde die Abhängigkeit im Konstruktor auflösen?

.

4voto

dotjoe Punkte 25012

TestController benötigt diesen ctor ...

public class TestController : BaseController
{
    public TestController(ILogger logger) : base(logger) {}

...das hat nichts mit NInject zu tun. Wenn Sie einen parameterlosen ctor zu BaseController hinzufügen und Ihren TestController so lassen, würden Sie keine Logger-Injektion erhalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X