Recentemente ho passato a Ninject 2,0 rilascio e cominciato ottenere il seguente errore:errore "Più di un binding di corrispondenza sono disponibili" quando si usa Ninject.Web.Mvc 2.0 e 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.
Tuttavia, non riesco a trovare un determinato percorso di riproduzione. A volte capita, a volte no. Sto usando NinjectHttpApplication
per l'iniezione automatica dei controller. I controller sono definiti in un assembly separato:
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();
}
/* ............. */
}
Forse qualcuno ha familiarità con questo errore.
Qualche consiglio?
FYI, non è esclusivo di ASP.NET MVC 1.0. Ho appena fatto accadere anche in ASP.NET MVC 2.0. – mckamey
Ho creato un progetto di riproduzione per questa situazione e l'ho caricato nel gruppo Ninject-dev. Spero che qualcuno riconoscerà il problema. Non ero in grado di vedere una soluzione facile. http://groups.google.com/group/ninject-dev/files – mckamey
FYI, ho verificato che questo è stato risolto per me nella versione 2.1.0.0 di NinjectNinject.Web.Mvc (MVC2). Nell'ultima versione non è più necessario chiamare RegisterAllControllersIn (...). – mckamey