В настоящее время я использую 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;
}
Я не уверен, смогу ли я создать какой-либо экземпляр клиента в конструкторе. Может кто-нибудь, пожалуйста, скажите мне, что я делаю не так. Спасибо