Недавно у меня был сценарий, который требовал разрешения внедрения зависимостей в статическом классе в приложении 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 г.