Нет службы для типа ‘Microsoft.Зарегистрирован Extensions.Http.DefaultHttpClientFactory’

#c# #visual-studio #unit-testing #nuget-package

#c# #visual-studio #модульное тестирование #nuget-пакет

Вопрос:

Visual Studio 2019. c #. Существующий модульный тест после некоторых изменений начал завершаться ошибкой с сообщением об ошибке

Система.Исключение InvalidOperationException: нет службы для типа ‘Microsoft.Зарегистрирован Extensions.Http.DefaultHttpClientFactory».

Интересно то, что в тестируемый код не было внесено никаких прямых изменений. Обновлено несколько пакетов и все.

Ответ №1:

Я обнаружил, что для решения проблемы необходимо установить пакет Microsoft.AspNet.WebAPI.Ядро 5.2.7 (версия на момент публикации сообщения)

и после этого мне пришлось реализовать IHttpClientFactory

Из-за этого тест был простым

     public class HttpClientFactoryTest : IHttpClientFactory
    {
        public HttpClient CreateClient(string name)
        {
            var config = new HttpConfiguration();
            config.MapHttpAttributeRoutes();
            var inMemoryServer = new HttpServer(config);
            return new HttpClient(inMemoryServer);
        }
    }
  

Тогда также необходимо было зарегистрировать такой тип

 unityContainer.RegisterType<IHttpClientFactory, HttpClientFactoryTest>();
  

После этого ошибка исчезла.

Вот и все

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

1. Похоже, ваша проблема решена, поэтому, пожалуйста, подумайте о том, чтобы принять ее .