Vor kurzem habe ich Ninject Version 2.0 eingeschaltet und begann die folgende Störung zu erhalten:Fehler „Mehr als eine passende Bindung zur Verfügung stehen“, wenn Ninject.Web.Mvc 2.0 und ASP.NET MVC 1.0
Error occured: Error activating SomeController More than one matching bindings are available. Activation path: 1) Request for SomeController Suggestions: 1) Ensure that you have defined a binding for SomeController only once.
Ich bin jedoch nicht in der Lage, bestimmte Wiedergabewege zu finden. Manchmal kommt es vor, manchmal nicht. Ich benutze NinjectHttpApplication
für automatische Steuerungen Injektion. Controller sind in einer separaten Baugruppe definiert:
public class App : NinjectHttpApplication
{
protected override IKernel CreateKernel()
{
INinjectModule[] modules = new INinjectModule[] {
new MiscModule(),
new ProvidersModule(),
new RepositoryModule(),
new ServiceModule()
};
return new StandardKernel(modules);
}
protected override void OnApplicationStarted()
{
RegisterRoutes(RouteTable.Routes);
RegisterAllControllersIn("Sample.Mvc");
base.OnApplicationStarted();
}
/* ............. */
}
Vielleicht ist jemand mit diesem Fehler vertraut.
Irgendwelche Ratschläge?
FYI, es ist nicht exklusiv für ASP.NET MVC 1.0. Ich hatte es gerade in ASP.NET MVC 2.0 passiert. – mckamey
Ich habe ein Repro-Projekt für diese Situation erstellt und in die Ninject-dev-Gruppe hochgeladen. Hoffentlich erkennt jemand das Problem. Ich war nicht in der Lage, eine einfache Lösung zu sehen. http://groups.google.com/group/ninject-dev/files – mckamey
FYI, ich habe überprüft, dass dies für mich in Version 2.1.0.0 von NinjectNinject.Web.Mvc (MVC2) behoben ist. In der neuesten Version müssen Sie nicht mehr RegisterAllControllersIn (...) aufrufen. – mckamey