Передача параметров Autofac и автопроводное соединение

Дизайном нет созданы в , механизм для Windows для распространения переменной среды добавляет/изменяет/удаляет к уже под управлением cmd.exe, или из другого cmd.exe или от "Моего Компьютера-> Свойства-> Расширенные настройки-> Переменные среды".

, Если Вы изменяете или добавляете новую переменную среды за пределами объема существующей открытой командной строки, или необходимо перезапустить командную строку, или, вручную добавить НАБОР использования в существующей командной строке.

последний принятый ответ шоу частичное обходное решение путем ручного обновления весь переменные среды в сценарии. Сценарий обрабатывает вариант использования переменных изменяющей среды глобально в "Моем Компьютере... Переменные среды", но если переменная среды изменяется в одном cmd.exe сценарий, не распространят его к другому под управлением cmd.exe.

6
задан Carl Hörberg 31 July 2009 в 11:05
поделиться

3 ответа

Здесь повторяется ответ из списка рассылки Autofac:

Параметры, переданные в Resolve, относятся только к непосредственному исполнителю сервис, который вы разрешаете, поэтому передавая параметры Config в разрешение звонок потребителю не сработает. Чтобы решить эту проблему, измените регистрацию потребителя на:

builder.Register((c, p) => new Consumer(c.Resolve<Config>(p))); 
19
ответ дан 8 December 2019 в 12:22
поделиться

Autofac, очевидно, пытается разрешить параметр вашего класса Config в предположении, что сам словарь является разрешимый тип. Я не знаю синтаксиса autofac, как это сделать. Но вам, вероятно, потребуется выполнить больше действий при регистрации типа конфигурации, например, дать ему делегат, который передается в новый Словарь.

0
ответ дан 8 December 2019 в 12:22
поделиться

К сожалению, контейнеры IoC, такие как Autofac, не оснащены модулем «пожалуйста, прочтите мои мысли».

В основном вы пытаетесь сказать: «Я знаю один из задействованным здесь типам нужен словарь, а мне нужна служба типа Consumer, не могли бы вы попытаться выяснить, о чем я говорю, и просто сделать правильные вещи ? ».

Если вы разрешите одну службу и укажете параметр, будет предпринята попытка использовать этот параметр для этой конкретной службы. Контейнер не будет пытаться распространить значение этого параметра на какие-либо зависимости.

0
ответ дан 8 December 2019 в 12:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: