Я пытаюсь зарегистрировать следующую комбинацию в простом Injector:Как зарегистрировать коллекцию условно с помощью простого инжектора?
- Коллекция (один или более) реализации
IMyInterface
для конкретного типа, например,Implementation1<MyClass>
иImplementation2<MyClass>
дляIMyInterface<MyClass>
- коллекции пустышки (пустой список) для открытых общего типа
IMyInterface<T>
как откат (условных?)
Таким образом, я хочу, чтобы убедиться, что все запрашивающие из IEnumerable<IMyInterface<T>>
получит в наименее пустой список или список реальных реализаций; запросчик IEnumerable<IMyInterface<MyClass>>
должен получить перечисляемый экземпляр (например, List<IMyInterface<MyClass>>
) с элементами Implementation1<MyClass>
и Implementation2<MyClass>
, а запросчик IEnumerable<IMyInterface<AnotherClass>>
должен получить Enumerable.Empty<IMyInterface<AnotherClass>>
.
Список классов не указан в регистрационном коде. Я реализовал загрузчик, собирающий все реализации из сборок.
Я пробовал использовать несколько комбинаций RegisterCollection
и RegisterConditional
, но никто не выполнил все требования. Есть ли работа для (не существует) RegisterCollectionConditional?
Связанный: https://github.com/simpleinjector/SimpleInjector/issues/283 – Steven
Можете ли вы объяснить (или показать), какие условия для реализаций будут отображаться в коллекции или нет? – Steven
Без этой информации невозможно дать вам хороший ответ. – Steven