Azure函数中键入的HTTP客户端未正确注册



我试图通过DI在Azure函数中创建一个类型的http客户端,当我像下面这样设置它时,它没有进入lambda,因此没有设置BaseAddress。

builder.Services.AddSingleton<IService, Service>();
builder.Services.AddHttpClient<IService, Service>(client => {
client.BaseAddress = new Uri("http://www.google.com");
});

在为客户端创建方法的服务中,它像这样消费:

public Service(HttpClient client){

然后在其他类中我在Startup中注入:

public AClass(Service service){

我遵循官方文档,有什么问题吗?

以下代码段

builder.Services.AddHttpClient<IService, Service>(client => {
client.BaseAddress = new Uri("http://www.google.com");
});

将已经将服务添加到集合中。我建议去掉单例

builder.Services.AddSingleton<IService, Service>();

最后,服务注册为抽象,但您试图注入实现。

public AClass(Service service){

我建议在需要的地方注入抽象

public AClass(IService service){ //<-- NOTE THE INTERFACE

最新更新