刚开始使用 HttpFactory,非常困惑它的 DI 是如何工作的,例如这条线的工作原理
services.AddHttpClient<IMyClient, MyClient>()
.AddHttpMessageHandler(s => new UserAgentDelegatingHandler());
这不
services.AddHttpClient<IMyClient, MyClient>()
.AddHttpMessageHandler<UserAgentDelegatingHandler>();
返回
“消息:System.InvalidOperationException:没有注册类型‘UserAgentDelegatingHandler’的服务。”
同样的情况,下面的代码工作正常
services.AddHttpContextAccessor();
services.AddHttpClient<IMyClient, MyClient>()
.AddHttpMessageHandler(s => new CookieDelegateHandler(s.GetRequiredService<IHttpContextAccessor>()));
但这不是
services.AddHttpContextAccessor();
services.AddHttpClient<IMyClient, MyClient>()
.AddHttpMessageHandler<CookieDelegateHandler>();
我从这些示例中阅读了很多 HttpClientFactory 使用示例,我的 DelegateHandlers。
我做错了什么?