这是使用nInject依赖注入绑定httpclient的正确方法吗?
Bind<HttpClient>().To<HttpClient>().InSingletonScope();
这将重复使用到处的同一httpclient,而不是"新的"新闻?:)
如果您询问将HttpClient
注册为Singleton是正确的事情,那么是的。
Microsoft文档:
httpclient旨在实例化一次,并在整个过程中重新使用 应用的生活。实例化httpclient类 每个请求都会耗尽重量下可用的插座数量 负载。这将导致SocketException错误。
如果如何用ninject将其注册为singleton,则有两个基本相同的选项:
Bind<HttpClient>().To<HttpClient>().InSingletonScope();
Bind<HttpClient>().ToSelf().InSingletonScope();
ps。如果您能够安装此软件包(适用于.NET框架和.NET Core),则最好使用HttpClientFactory
。它将以最有效的方式管理您的httpclient实例(在100%的情况下,将HttpClient
保持在内存并不是最有效的方式)。如何使用它可以在此处阅读