У меня есть приложение с несколькими контроллерами, которые используются в разных сценариях ios. Это означает, что разные контроллеры нуждаются в разной стратегии для определения правильной культуры, используемой для ответа. Некоторые примеры различных способов определения культуры (в псевдо C# коде)
- user.culture ?? принять язык
- принять язык ?? setting.GetCustomValue (controllerXCulture)
- accept-language
RequestCultureProvider
получает только HttpContext
, поэтому мне не хватает ControllerActionContext
, чтобы иметь возможность определить стратегия выбора. Или кто-то знает, как его получить?
Добавление промежуточного программного обеспечения для настройки культуры потоков также не работает. Он установит желаемую культуру во время выполнения действия, но когда сериализуется ответ, будет восстановлена исходная культура, определенная стандартным RequestCultureProviders, что приведет к ответу в неправильной культуре.
Кто-нибудь знает о способ установить культуру ответа или как настроить пользовательский RequestCultureProvider
на контроллер?
[править]
Я попытался найти обходные пути, подумав, может быть, я смогу установить нужную культуру в какой-то момент после сохраняя его в HttpContext.Items
, но я не могу найти хорошую точку для его установки. Я дошел до создания пользовательского выходного форматера, полученного из NewtonsoftJsonOutputFormatter
, но он не вызывался, даже когда я сначала очистил другие форматеры в Startup.ConfigureServices
. И никакое другое место, где я установил культуру, не приводило к правильной настройке культуры во время сериализации.
[/ edit]