Код: Выделить всё
public class MyApiClient : IMyApiClient
{
public async Task GetUser()
{
// Check for Internet connection
if(!IsConnectedToInternet())
throw new Exception("No Internet connection!");
// Call API to get user info
...
}
public virtual bool IsConnectedToInternet()
{
// Requires platform specific implementation
return false;
}
}
public interface IMyApiClient
{
Task GetUser();
bool IsConnectedToInternet();
}
Код: Выделить всё
...
builder.services.AddHttpClient(client => client.BaseAddress = new Uri("https://www.example.com/api"));
...
- Где мне создать переопределение, специфичное для веб-приложения для метода IsConnectedToInternet()? Делать это в Program.cs кажется неправильным.
- Я хотел бы использовать интерфейс IMyApiClient в Program.cs вместо фактического класса MyApiClient. Где мне зарегистрировать интерфейс IMyApiClient и его реализацию? Справлюсь ли я с этим так же, как с любыми локальными службами и их интерфейсами в приложении Blazor? Например: builder.services.AddSingleton(); в Program.cs? Если да, то важен ли порядок, например? нужно ли мне внедрить HttpClient после регистрации?
Подробнее здесь: https://stackoverflow.com/questions/798 ... tom-client