SimpleInjector: зарегистрировать коллекцию с InstanceCreator - PullRequest
1 голос
/ 20 марта 2020

Я пытаюсь зарегистрировать коллекцию вместе с ее instanceCreator. Я не смог найти никакой перегрузки для метода Container.Collection.Register, который принимает instanceCreator. Если я попытаюсь запустить al oop и зарегистрировать тип вместе с его instanceCreator несколько раз, используя Container.Register(instanceCreator, lifestyle), я не смогу это сделать, потому что получаю ошибку, что тип не может быть зарегистрирован несколько раз.

В основном я пытаюсь сделать следующее:

foreach(var item in items){
 Container.Register<ILogWriter>(instanceCreator, lifestyle)
}

У меня есть несколько реализаций ILogWriter, и у каждой есть свои собственные конфигурации, которые нужно передать в конструктор, поэтому мне нужно использовать instanceCreator перегрузка.

TIA

1 Ответ

0 голосов
/ 20 марта 2020

Container.Collection.Register предназначен для одновременной регистрации всей коллекции. Например, используя пакетную регистрацию и предоставив список Assembly экземпляров или список Type экземпляров.

С другой стороны, вы ищете для регистрации одного элемента для коллекция экземпляров. Это делается с использованием перегрузок Container.Collection.Append:

container.Collection.Append<ILogWriter>(instanceCreator, lifestyle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...