Вызов методов класса с внедрением зависимостей C# .NET Core 6.0C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Вызов методов класса с внедрением зависимостей C# .NET Core 6.0

Сообщение Гость »


У меня есть контроллер на C#, который вызывает класс, который, в свою очередь, отправляет HTTP-запросы и возвращает ответ в соответствии с приведенной ниже последовательностью кода:

Я добавил следующую строку в Program.cs:

builder.Services.AddHttpClient(); Я создал класс, который получает вызов контроллера и отправляет HTTP-запрос на внешний веб-сайт.

Пользователи общедоступного класса { общедоступная асинхронная задача GetUsers(HttpClient _httpClient) { var request = new HttpRequestMessage(new HttpMethod("get"), "https://gorest.co.in/public/v2/users"); вар res = ждут _httpClient.SendAsync(запрос); var content = ждут res.Content.ReadAsStringAsync(); возврат контента; } } Я создал контроллер для получения моих HTTP-запросов, и этот контроллер создает экземпляр клиента через IHttpClientFactory, чтобы избежать исчерпания HTTP-сокетов...

[Route("api/[controller]")] общедоступный класс UsersController: ControllerBase { частный только для чтения IHttpClientFactory _client; общедоступный UsersController (клиент IHttpClientFactory) { _клиент = клиент; } общедоступный класс UsersModel { общественный ИНТ идентификатор {получить; набор; } имя публичной строки {get; набор; } публичная строка электронная почта {get; набор; } публичная строка пол { get; набор; } статус публичной строки {get; набор; } } [HttpGet("GetUsers")] общедоступная асинхронная задача GetUsers() { вар myClient = _client.CreateClient(); return Newtonsoft.Json.JsonConvert.DeserializeObject(ожидайте новых пользователей().GetUsers(myClient)); } } Хорошо, приведенная выше последовательность кода выполняет свою работу правильно, но есть одна вещь, которая меня очень беспокоит: внедрение зависимостей и создание HTTP-клиента в каждом контроллере, вызывающем этот класс.

Я хотел бы создать класс, который принимает вызов контроллера, но этот класс сам создает свой HTTP-клиент, без необходимости его передачи контроллером в качестве параметра...

Я попробовал что-то вроде этого: я изменил свой контроллер, чтобы он больше не имел внедрения зависимостей, а просто вызывал класс:

[Route("api/[controller]")] общедоступный класс UsersController: ControllerBase { общедоступный класс UsersModel { общественный ИНТ идентификатор {получить; набор; } имя публичной строки {get; набор; } публичная строка электронная почта {get; набор; } публичная строка пол { get; набор; } статус публичной строки {get; набор; } } [HttpGet("GetUsers")] общедоступная асинхронная задача GetUsers() { return Newtonsoft.Json.JsonConvert.DeserializeObject(ожидайте новых пользователей().GetUsers()); } } Класс, в свою очередь, будет отвечать за создание HTTP-клиента.

Пользователи общедоступного класса { частный только для чтения IHttpClientFactory _client; общедоступные пользователи (клиент IHttpClientFactory) { _клиент = клиент; } публичная асинхронная задача GetUsers() { вар _httpClient = _client.CreateClient(); var request = new HttpRequestMessage(new HttpMethod("get"), "https://gorest.co.in/public/v2/users"); вар res = ждут _httpClient.SendAsync(запрос); var content = ждут res.Content.ReadAsStringAsync(); возврат контента; } } Но теперь я получаю эту ошибку:
Изображение


Я видел, как некоторые люди говорили, что им нужно реализовать конструктор, вставить : base()... но признаюсь, что я не на достаточном уровне, чтобы решить эту проблему самостоятельно. Буду очень признателен, если кто-нибудь поможет мне с этой задачей.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Вызов методов класса с внедрением зависимостей C# net Core 6.0
    Гость » » в форуме C#
    0 Ответы
    32 Просмотры
    Последнее сообщение Гость
  • Как использовать Hangfire с внедрением зависимостей в ASP.NET Core?
    Anonymous » » в форуме C#
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Как настроить поставщика журналов с внедрением зависимостей для библиотеки .NET
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»