Je me inscris composants avec le code suivant:même instance pour plusieurs interfaces
StandardKernel kernel = new StandardKernel();
string currentDirectory = Path.GetDirectoryName(GetType().Assembly.Location)
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
if (!Path.GetDirectoryName(assembly.Location).Equals(currentDirectory))
continue;
foreach (var type in assembly.GetTypes())
{
if (!type.IsComponent())
continue;
foreach (var @interface in type.GetInterfaces())
kernel.Bind(@interface).To(type).InSingletonScope();
}
}
J'ai une classe qui implémente deux interfaces:
class StandardConsole : IStartable, IConsumer<ConsoleCommand>
Si je peux résoudre IStartable
je reçois un Par exemple, si je résous IConsumer<ConsoleCommand>
je reçois un autre.
Comment obtenir la même instance pour les deux interfaces?
Cette question devrait être scindée en deux, une pour Ninject et l'autre pour autofac. –
@JeffWalkerCodeRanger: Vous avez donné -1 pour cela? :) – jgauffin
Il ya 3 ou 4 dups sur le côté Ninject, voir http://stackoverflow.com/questions/3147996/binding-singleton-to-multiple-services-in-ninject Balise ninject supprimée sur cette base. Suggérer de supprimer l'aspect ninject de la question car cela fait une question sans réponse –