У меня есть приложение ( IJobInit ), которое использует список из настроек JSON для создания нескольких экземпляров класса ( IJob ). Этот класс выполняет некоторую работу, используя две другие зависимости: IInputClient и IOutputClient . Он использует M.Extensions.DependencyInjection для создания контейнера, который передается в AutoFac для создания IContainer.
IJobInit(IContainer container)
Я бы хотел, чтобы IInputClient настраивался по-разному для каждого экземпляра IJob. В частности, я хотел бы передать секрет для использования. Результат будет:
IInputClient(HttpClient client)
где HttpClient настроен с использованием ConfigureHttpClient таким образом, что IJob не знает, что он предварительно аутентифицирован. Это также подойдет:
IInputClient(ISecretProvider secretsProvider, string secretName)
Конечный результат - три экземпляра IJob, в которых IInputClient настроен по-разному.
IJob(IInputClient inputClient1, IOutputClient outputClient)
IJob(IInputClient inputClient2, IOutputClient outputClient)
IJob(IInputClient inputClient3, IOutputClient outputClient)
Как мне этого добиться? Я смотрел на области Autofac, но они контролируют, когда экземпляр создается без какого-либо контроля над его конфигурацией (если я не пропустил его).
Коллега предложил мне разместить каждый экземпляр IJob в отдельном процессе с его собственной конфигурацией, которая возможна , но я пытаюсь разместить все задания в одной функции Azure и использовать список в конфигурации для создания внутренних заданий.
Спасибо!