Les échantillons que j'ai vus jusqu'à présent ressemblent à ceci:
Écrivez votre code comme celui-ci ... p> et ninject peut mapper l'interface sur le béton Tapez comme ceci ... p> alors quand je dis C'est cool, mais si je veux juste que le nord isolaire sans le samouraï et l'épée de béton est marquée comme interne? P> Actuellement, j'utilise une dépendance faite maison Résolveur où je pouvais dire et une question de bonus, je décore mes interfaces avec un attribut personnalisé "DefaultConnetypeType" que mon résolveur de dépendance peut utiliser si aucun cartographie n'existe. NIJJEZ-t-il quelque chose comme ça? P> merci p> p> var samurai = kernel.get
var sword = dépendencyresolver.current.resolve
3 Réponses :
Je recommanderais d'utiliser une usine abstraite pouvant créer Votre usine abstraite / ies devra être publique, tout comme votre dépendanceResolver. P> isword code> s. Cela a un avantage sur
dépendencyResolver code> en ce que les types qu'il peut créer sont délimités (à être
nord code>). P>
Cela ne répond pas directement à votre question, mais je sais avec l'unité, vous pouvez le faire en utilisant les fichiers de configuration par opposition au câblage de vos dépendances en code. NInject n'a malheureusement pas de prise en charge des fichiers de configuration.
Votre alternative à cela, consiste à utiliser les surcharges non génériques: p> et puis vous devriez pouvoir être capable de Faites quelque chose comme: p> mais c'est un gros fugy si vous me demandez ... p> p> p>
Lorsque vous liez une interface à un type de béton, vous pouvez demander une instance de cette interface et obtenir le type de béton. Dans votre exemple, vous pouvez le faire:
Bind<ISword>().To<Sword>().WhenInjectedInto<MyClass>();