Я новичок в Aws Lambda и пытаюсь понять, как использовать Dependency Injection в Aws Lambda с помощью .net core 2.1.
Я пытаюсь ввести IHttpClientFactory
, но я не уверен, чтоя делаю это правильно.
Я вызываю метод ниже в конструкторе класса лямбда-функции:
private static IServiceProvider ConfigureServices()
{
var serviceCollection = new ServiceCollection();
serviceCollection.AddHttpClient("client", client =>
{
client.BaseAddress = new Uri("someurl");
});
return serviceCollection.BuildServiceProvider();
}
Это правильно?
Кроме того, после того, как он возвращает IServiceProvider
, как я могу использовать его в любом классе, где мне нужно вызвать IHttpClientFactory
?
(я просмотрел некоторые связанные статьи, но мне все еще неясно использовать метод вывода ConfigureServices()
, когдавызывается в конструкторе?)
Спасибо.
Пример использования для DI:
public class Function
{
private readonly ITestClass _test;
public Function()
{
ConfigureServices();
}
public async Task Handler(ILambdaContext context)
{
_test.Run(); //Run method from TestClass that implements ITestClass and calls IHttpClientFactory to make call to an API
//return something
}
private static void ConfigureServices()
{
var serviceCollection = new ServiceCollection();
serviceCollection.AddHttpClient("client", client =>
{
client.BaseAddress = new Uri("someurl");
});
serviceCollection.AddTransient<ITestClass, TestClass>();
serviceCollection.BuildServiceProvider(); //is it needed??
}
}