Параметры автозапуска во время выполнения

Я новичок в autofac и ищу лучшие практики по передаче значений времени выполнения в конструктор. Я прочитал кучу вопросов о стековом потоке, где они задаются, но ни один из них полностью не раскрыт. Должны ли мы использовать делегатов, фабрику для создания сервиса и т. Д. Я знаю, что передача контейнера - не лучший способ сделать это.

В моем конкретном случае у меня есть служба, которая имеет доступ к нескольким зависимостям, например, ведение журнала, поставщик данных и т. Д. Наряду с несколькими передаваемыми службами у меня также есть параметры времени выполнения, которые мне нужно записать, скажем, идентификатор пользователя, пароль. Идентификатор пользователя и пароль требуются для SomeService и ищутся, когда веб-программа просмотра выполняет определенное действие. Ниже то, что я имею, и подчеркнуло проблему.

public class SomeService : ISomeService
{
    private readonly IDataProvider _dataProvider;
    private readonly ILog _log;
    private readonly string _username;  
    private readonly string _password;

    public SomeService(IDataProvider dataProvider, ILog log,
        string username, string password)
    {
      _dataProvider = dataProvider;
      _log = log;
      _username = username;
      _password = password;
    }
}

Поставщик данных и журнал настраиваются в режиме автозапуска

builder.RegisterType<DataProviderService>().As<IDataProvider>()
builder.RegisterType<SomeLogService>().As<ILog>()

Большая часть функциональности этого «SomeService» требует имени пользователя и пароля для проверки перед выполнением задач, поэтому решил, что лучше всего перейти в конструктор при создании, но никогда не сталкивался с требованиями времени выполнения для autofac. Я рассмотрел вопросAutofac - разрешение параметров времени выполнения без необходимости передавать контейнер и это кажется близким к тому, что мне нужно, но мне нужно больше отзывов о том, как это сделать.

Ответы на вопрос(2)

Ваш ответ на вопрос