C# Asp. net Внедрение зависимостей ядра с использованием RestSharp - PullRequest
0 голосов
/ 25 апреля 2020

В настоящее время я использую RestClient для получения данных с веб-сайта. Я хотел бы иметь возможность использовать внедрение зависимостей в классе контроллера в моем базовом проекте asp. net, который использует класс Client. Когда я пытаюсь использовать внедрение зависимостей, когда я выполняю вызов контроллера и помещаю точку останова в контроллер, это не срабатывает. Это связано с тем, что я неправильно настроил внедрение зависимости от клиента.

Ниже представлен мой класс Client, который реализует интерфейс IClient.

public class Client: IClient
{
    public RestClient RestClient { get; set; }
    public Client()
    {
        RestClient = new RestClient("https://eonet.sci.gsfc.nasa.gov/api/v2.1/");
    }

    public async Task<List<EventDTO>> GetAll()
    {
        var request = new RestRequest("events", Method.GET);
        var content = await RestClient.GetAsync<RootObject>(request);
        return Event;
    }

    public async Task<RootObject> Get(string id)
    {
        var request = new RestRequest("events?source=" + "InciWeb", Method.GET);
        RootObject content = null;
        content = await RestClient.GetAsync<RootObject>(request);
        return content;
    }
}

В методе запуска ConfigureServices.

  services.AddTransient<IClient, Client>();

в моем контроллере я делаю следующее:

private readonly IClient _client;

public EventsController(IClient client)
{
    _client = client;
}

Я не уверен, смогу ли я создать какой-либо экземпляр клиента в конструкторе. Может кто-нибудь, пожалуйста, скажите мне, что я делаю не так. Спасибо

...