.NET Core Web API AddLocalization и использовать его сразу при другой регистрации - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь реализовать локализацию .NET Core Web API.Этот API доступен с использованием REST и SOAP.

Для обработки запросов SOAP я регистрирую интерфейсы, которые указывают на экземпляры контроллера.Таким образом, я обрабатываю REST и SOAP одним и тем же способом.

Проще говоря, в моем Sartup.cs есть регистрация вроде:

services.AddSingleton<ISomeController>(new SomeController());

Проблема возникает, когда я пытаюсь добавить локализацию.SomeController ctor будет выглядеть так:

 private readonly IStringLocalizer<SomeController> _localizer;

        public SomeController(IStringLocalizer<SomeController> localizer)
        {
            _localizer = localizer;
        }

И в Startup.cs я добавляю:

services.AddLocalization(options => options.ResourcesPath = "Resources");

Теперь проблема заключается в передаче IStringLocalizer для регистрации, которая у меня после этого:

services.AddSingleton<ISomeController>(new SomeController(IStringLocalizer_PARAMETER_NEEDED));

Есть ли способ внедрить его гибким способом, предполагая, что мы только что добавили поддержку локализации несколькими строками выше?Или IStringLocalizer должен быть создан вручную в классе Controller, если он пуст в ручном режиме?

Заранее спасибо за советы.

...