.net 6 DI applicationсервисы, не содержащиеся в веб-приложении

#dependency-injection #.net-6.0 #asp.net-core-localization

#инъекция зависимости #.net-6.0 #asp.net-ядро-локализация

Вопрос:

 app.UseRequestLocalization(app.ApplicationServices.GetRequiredServicelt;IOptionslt;RequestLocalizationOptionsgt;gt;().Value);   

Я хочу использовать глобализацию в своем проекте с помощью .net 6. Однако в program.cs я получаю ошибку

Ошибка CS1061
«Веб-приложение» не содержит определения для «Служб приложений», и не удалось найти доступный метод расширения «Службы приложений», принимающий первый аргумент типа «Веб-приложение» (отсутствует директива using или ссылка на сборку?)

Что я могу сделать?

Комментарии:

1. Ваш Configure метод не запускается в контексте запроса (это происходит во время запуска), поэтому нет смысла пытаться получить IOptionslt;RequestLocalizationOptionsgt; там. (Но вы, конечно, можете использовать его внутри функции промежуточного программного обеспечения).

Ответ №1:

приложение должно быть приведено в интерфейс, как показано ниже:-

 var options = ((IApplicationBuilder)app).ApplicationServices.GetRequiredServicelt;IOptionslt;RequestLocalizationOptionsgt;gt;();  app.UseRequestLocalization(options.Value);