J'ai récemment mis à jour l'application ASP.NET MVC 3 vers Ninject 2.2.Ninject 2.2 plusieurs liaisons
Auparavant, j'avais l'interface suivante pour la mise en œuvre obligatoire dans mon application principale:
Bind(typeof(IMyInterface<>)).To(typeof(MyImplementation<>)).InRequestScope();
En outre, j'ai eu ce qui suit dans un ensemble différent qui a été chargé par mon application principale:
var arg = new ConstructorArgument("info", "something");
Bind<IMyInterface<MyClass>>().To<MyImplementation<BlogComment>>().WithParameter(arg);
Cela fonctionnait bien auparavant et l'implémentation plus spécifique (celle avec l'argument) était reconnue. Cependant, quand je suis passé à Ninject 2.2, j'ai reçu l'erreur suivante:
Error activating IMyInterface{MyClass}
More than one matching bindings are available.
Activation path:
2) Injection of dependency IMyInterface{MyClass} into parameter myParam of constructor of type SomeOtherClass
1) Request for IMyInterface
Suggestions:
1) Ensure that you have defined a binding for IMyInterface{MyClass} only once.
Quel changement a été fait 2,0 à 2,2 qui est à l'origine et c'est là un travail autour? Ninject 2.2 s'assure que seulement une liaison correspondante existe lors de la résolution des instances
Merci beaucoup de voir les développeurs open source répondre aux questions sur leur projet respectif. – Omar
Donc, y avait-il un correctif de bogue pour cet article? Ça nous tue maintenant. Si ce n'est pas le cas, quand pouvons-nous nous attendre à ce que la prochaine version soit publiée, qui supporte cela? –
Ditto - J'ai perdu beaucoup de temps avec ça. –