Ich bin neu in MVC und Dependency Injection. Bitte helfen Sie mir zu verstehen, wie das funktionieren sollte. Ich verwende Ninject. Hier ist mein Code:
in der Datei Global.asax:
private void RegisterDependencyResolver()
{
var kernel = new StandardKernel();
kernel.Bind<IDbAccessLayer>().To<DAL>();
// DAL - is a Data Access Layer that comes from separated class library
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
}
protected void Application_Start()
{
RegisterDependencyResolver();
}
Die Implementierung von IDbAccessLayer ist sehr einfach:
public interface IDbAccessLayer
{
DataContext Data { get; }
IEnumerable<User> GetUsers();
}
jetzt in einem Controller muss ich einen Konstruktor erstellen, der IDbAccessLayer-Parameter erhält. Und das funktioniert einfach.
Jetzt weiß ich nicht, wie man eine Verbindungszeichenfolge an DAL übergeben. Wenn ich versuche, DAL-Konstruktor mit etwas, das einen Parameter akzeptiert zu ersetzen, funktioniert es nicht. Es wird eine Ausnahme mit folgender Meldung geworfen Kein parameterloser Konstruktor für dieses Objekt definiert