Установка значения параметра Named на основе HttpContext.Request.Url.Host?

#asp.net-mvc #autofac

Вопрос:

У меня есть несколько asp.net Сайты MVC 5 с общей бизнес-логикой, но отдельными сайтами.

Несколько конструкторов моих классов службы/Репозитория/Менеджера/и т.д. В проекте бизнес-логики принимают строковый параметр «Код страны», который содержит код страны (сюрприз!) страны, которую обрабатывает сайт. Это хорошо работает, когда сайт обслуживает только один домен, так как я просто настраиваю «статический» класс промежуточного программного обеспечения Autofac с кодом страны в файле startup.cs.

Новое требование в проекте заключается в том, что один сайт должен поддерживать несколько разных доменов, поэтому мне нужно изменить значение параметра конструктора «Код страны» во время выполнения, в зависимости от того, какой домен используется в URL.

Моя первая идея заключалась в использовании программного обеспечения IResolveMiddleware и изменении параметра там, но, похоже, HttpContext.Current равен нулю во время выполнения промежуточного программного обеспечения в конвейере (вероятно, до того, как MVC обработал HttpContext) (Фаза: конвейерная фаза.Выбор параметров).

Как бы вы решили эту проблему?