Недавно у меня был сценарий, который требовал разрешения внедрения зависимостей в статическом классе в приложении ASP.Net Core 6.0.
Проблема
Нам нужно внедрить класс IConfiguration в статический класс в ASP.Net Core 6.0. Для этого нам потребуется статический конструктор, который не поддерживается ядром .NET для работы с внедрением конструктора.
Статический класс
Я создал класс ниже с введенным интерфейсом IConfiguration, а затем попытался получить к нему доступ в моем контроллере:
Исключение
Когда я попытался получить значение appsettings в моем контроллере:
Я получил ошибку ниже:
Решение
Решение состоит в том, чтобы внедрить IConfiguration во время выполнения с помощью ServiceProviderServiceExtensions.GetRequiredService Method.
В классе program.cs в корне приложения нам нужно добавить строку кода ниже. После этого все работает нормально.
Я надеюсь, что это помогает кому-то.
Первоначально опубликовано на http://www.developerslearnit.com 30 июля 2022 г.