Не удалось найти подходящий конструктор для типа 'ApplicationInventory.Services.ServerInventoryService' - PullRequest
1 голос
/ 05 июля 2019

Я пытаюсь создать службу, доступную как для контроллеров, так и для обычных функций для всех вызовов API для конкретной конечной точки для моего приложения ASP.Net Core 2.2.Всякий раз, когда я пытаюсь внедрить класс HttpClient, возникает ошибка до того, как функции могут быть достигнуты /

Я настроил свой startup.cs, как показано в документации, и сократил входные данные конструктора до HttpClient, так что я знаю, что именно здеськорень проблемы в том.Я добавил HttpClient в раздел «Настройка служб» для класса Startup.cs всеми возможными способами.

Startup.cs

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors();
            ...
                        // adding ability to make basic http calls 
            services.AddHttpClient<IServerInventoryService, ServerInventoryService>(c =>
            {
                c.BaseAddress = new Uri("https://serverinventory.cooperatorsgroup.ca/api/");
            }).ConfigurePrimaryHttpMessageHandler(() =>
            {
                return new HttpClientHandler()
                {
                    AllowAutoRedirect = false,
                    UseDefaultCredentials = true
                };
            });

}

Контроллер:

       private ILogger<ServerInventoryApiController> logger;
        private IHttpClientFactory clientFactory;
        private readonly IServerInventoryService ServerInventoryService;
        public ServerInventoryApiController(ILogger<ServerInventoryApiController> _logger, IServerInventoryService _service, IHttpClientFactory httpClientFactory)
        {
            ServerInventoryService = _service;
            logger = _logger;
            clientFactory = httpClientFactory;
        }

APIService:

  public class ServerInventoryService : IServerInventoryService
    {
        private HttpClient client;
        //        private readonly IConfiguration configuration;

        public ServerInventoryService(HttpClient httpClient)
        {
            client = httpClient;
        }

Каждый раз, когда осуществляется вызов Сервиса, результатом является:

"InvalidOperationException: Подходящий конструктор для типа 'ApplicationInventory.Services.ServerInventoryService' не найден. Убедитесь, что тип конкретный, а службы зарегистрированы для всех параметров общедоступного конструктора."

...