Meine Web-App-Lösung besteht aus drei Projekten:Wie weit erreicht Dependency Injection?
- Web App (ASP.NET MVC)
- Business Logic Layer (Klassenbibliothek)
- Datenbank Layer (Entity Framework)
Ich möchte Ninject verwenden, um die Lebensdauer der DataContext
zu verwalten, die von der Entity Framework
in der Database Layer
generiert wird. Die Business-Logik-Schicht besteht aus Klassen, die auf Repositories verweisen (auf der Datenbank-Ebene), und meine ASP.NET MVC-Anwendung verweist auf die Serviceklassen der Business-Logik-Schicht, um Code auszuführen. Jedes Repository erstellt eine Instanz des MyDataContext
Objekt aus dem Entity Framework
Repository
public class MyRepository
{
private MyDataContext db;
public MyRepository
{
this.db = new MyDataContext();
}
// methods
}
Business-Logik-Klassen
public class BizLogicClass
{
private MyRepository repos;
public MyRepository
{
this.repos = new MyRepository();
}
// do stuff with the repos
}
Will Ninject die Lebensdauer von MyDataContext
trotz der langen Abhängigkeitskette aus dem Web umgehen App auf die Datenschicht?
Was bedeutet „scheint zu funktionieren“? – jfar
@jfar: Ich habe es vor ein paar Augenblicken überprüft und kernel.Get <> zweimal aufgerufen, gab mir dieselbe Instanz in der Anfrage. Ich erinnere mich nicht genau, was die Probleme vorher waren, aber irgendwie entschied ich mich, es nicht zu verwenden. In der Zwischenzeit habe ich neue Quellen heruntergeladen, aber bis heute nicht überprüft, also wurde es wahrscheinlich korrigiert. – LukLed