У меня есть интерфейс IInterface
и два изображенияи Impl2
.Контекстуализированные привязки с NInject
Каждая реализация помечается с KeyAttribute
:
[Key("key1")]
public class Impl1 : IInterface {}
[Key("key2")]
public class Impl2 : IInterface {}
Impl1
находится в сборке и Impl2
в другой.
Im создания привязки по соглашению:
this.Bind(b => b.FromAssembliesMatching("*")
.SelectAllClasses()
.InheritedFrom(typeof(IInterface))
.BindAllInterfaces()
);
По конфигурации, мой проект имеет конфигурацию, как список <user, backend>
, где backend
является ключевым бэкенд будет ассоциироваться с.
Когда я загружаю конфигурацию пользователей, мне нужно, чтобы Get
реализована реализация, где implementation.KeyAttribute.Equals(currentUser)
.
Любые идеи?