我註冊的組件用下面的代碼:返回同一個實例多個接口
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