这是使用NINEXT依赖注入绑定HTTPCLIENT的正确方法



这是使用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保持在内存并不是最有效的方式)。如何使用它可以在此处阅读

最新更新