Récemment, je suis passé à la libération Ninject 2.0 et a commencé à obtenir l'erreur suivante:erreur « Plus d'un liaisons de correspondance sont disponibles » lors de l'utilisation Ninject.Web.Mvc 2.0 et 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.
Cependant, je suis incapable de trouver un certain chemin de reproduction. Parfois, cela arrive, parfois non. J'utilise NinjectHttpApplication
pour l'injection automatique des contrôleurs. Les contrôleurs sont définis dans un assemblage séparé:
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();
}
/* ............. */
}
Peut-être que quelqu'un connaît cette erreur.
Un conseil?
FYI, ce n'est pas exclusif à ASP.NET MVC 1.0. Je l'ai juste fait se produire dans ASP.NET MVC 2.0 aussi bien. – mckamey
J'ai créé un projet de reprographie pour cette situation et l'ai téléchargé dans le groupe Ninject-dev. J'espère que quelqu'un reconnaîtra le problème. Je n'étais pas capable de voir une solution facile. http://groups.google.com/group/ninject-dev/files – mckamey
Pour info, j'ai vérifié que cela est corrigé pour moi dans la version 2.1.0.0 de NinjectNinject.Web.Mvc (MVC2). Dans la dernière version, vous n'avez plus besoin d'appeler RegisterAllControllersIn (...). – mckamey