Использование шаблона Factory с внедрением зависимостей ядра ASP.NET
В IServiceProvider, каковы различия между методами GetRequiredService и GetService?
ASP.NET Core DI: разрешить один и тот же экземпляр, если служба с заданной областью зарегистрирована как тип службы, так и тип реализации.
Это немного сбивает с толку, и ни у кого нет примера, который бы точно соответствовал тому, чего я пытаюсь достичь.
У меня есть код, похожий на следующий:
Middleware.cs
Код: Выделить всё
public static IServiceCollection UseAPI(thisIServiceCollection services, string key, string username, bool test = false)
{
services.AddHttpClient(client =>
{
// ... setting BaseAddress based on test, adding auth headers, etc
});
return services.AddScoped(x =>
{
var service = x.GetRequiredService();
var ApiClient client = new ApiClient(service);
client.Configure(key);
return client;
}
}
Код: Выделить всё
services.UseAPI(_settings.Key, _settings.Username, _settings.IsTest);
Код: Выделить всё
public class ApiClient
{
private readonly HttpClient httpClient;
private string Key;
public ApiClient(HttpClient _httpClient)
{
httpClient = _httpClient;
}
public void Configure(string key)
{
Key = key;
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... tion-facto
Мобильная версия