Я зарегистрировал свои реализации, используя следующий код:
container.Register(Component.For<IDatabaseProvider>().ImplementedBy<SqlDatabaseProvider>().LifeStyle.Transient.NamedAutomatically("SqlDatabaseProvider"));
container.Register(Component.For<IDatabaseProvider>().ImplementedBy<MySqlDatabaseProvider>().LifeStyle.Transient.NamedAutomatically("MySqlDatabaseProvider"));
И ядро добавило HandlerSelector, используя:
Kernel.AddHandlerSelector(new DatabaseProviderHandlerSelector());
И в методе SelectHandler моего HandlerSelector:
public IHandler SelectHandler(string key, Type service, IHandler[] handlers)
Ключ, кажется, всегда нулевой.Тип входит правильно, и в обработчиках есть обе реализации.
Как я могу предоставить ключ к этому методу, чтобы я мог выбрать реализацию, основанную на ключе?
Спасибо, Ганеш