Я пытаюсь реализовать локализацию .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, если он пуст в ручном режиме?
Заранее спасибо за советы.