Я пытаюсь создать службу, доступную как для контроллеров, так и для обычных функций для всех вызовов 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' не найден. Убедитесь, что тип конкретный, а службы зарегистрированы для всех параметров общедоступного конструктора."