次のコードでコンポーネントを登録しています。
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();
}
}
次に、2つのインターフェイスを実装するクラスがあります。
class StandardConsole : IStartable, IConsumer<ConsoleCommand>
解決するIStartable
と1つのインスタンスを取得し、解決するIConsumer<ConsoleCommand>
と別のインスタンスを取得します。
両方のインターフェースで同じインスタンスを取得するにはどうすればよいですか?