Я строю клиент API. Мой API довольно большой, поэтому я решил разделить его на 5 (частных) субклиентов, каждый из которых охватывает свою часть API. 5 клиентов не очень удобны в использовании, поэтому я бы хотел, чтобы их было меньше 1 (publi c) ApiClient
, что будет служить своего рода фасадом над этими 5 клиентами. Дело в том, что я, вероятно, должен поделиться одним HttpClient
между всеми этими суб-клиентами Насколько я знаю, я могу сделать что-то вроде этого:
services.AddHttpClient<SubClient1>(c => c.BaseAddress = new System.Uri("https://myapi.com"));
С помощью приведенной выше строки мой SubClient1
будет введен в мой publi c ApiClient
с соответствующим экземпляром HttpClient
уже настроен с BaseAddress
. Теперь, как мне зарегистрировать все 5 моих субклиентов (SubClient1
, SubClient2
, SubClient3
, ...), чтобы каждый из них получил одинаковые HttpClient
? Я думаю, что код ниже создаст 5 HttpClient
экземпляров:
services.AddHttpClient<SubClient1>(c => c.BaseAddress = new System.Uri("https://myapi.com"));
services.AddHttpClient<SubClient2>(c => c.BaseAddress = new System.Uri("https://myapi.com"));
services.AddHttpClient<SubClient3>(c => c.BaseAddress = new System.Uri("https://myapi.com"));
services.AddHttpClient<SubClient4>(c => c.BaseAddress = new System.Uri("https://myapi.com"));
services.AddHttpClient<SubClient5>(c => c.BaseAddress = new System.Uri("https://myapi.com"));
Как я могу решить эту проблему?