我注册的组件用下面的代码:返回同一个实例多个接口
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();
}
}
然后,我有一个实现两个接口的类:
class StandardConsole : IStartable, IConsumer<ConsoleCommand>
如果我解决IStartable
我得到一个例如,如果我解决IConsumer<ConsoleCommand>
我得到另一个。
如何为两个接口获取相同的实例?
这个问题应该分成两个,一个用于Ninject,另一个用于autofac。 – 2012-02-22 00:20:30
@JeffWalkerCodeRanger:你给了-1? :) – jgauffin 2012-02-22 05:40:00
在Ninject方面有3或4次的决斗,请参阅http://stackoverflow.com/questions/3147996/binding-singleton-to-multiple-services-in-ninject在此基础上删除ninject标签。建议删除ninject方面的问题,因为这使得无法回答的问题 – 2012-09-12 08:55:01