我应该使用 Singleton 还是 Scoped 服务在 ASP.NET Core 中进行 api 调用?

Nav*_*Rsh 1 c# dependency-injection .net-core asp.net-core

我有一个用于进行 API 调用的类。我想将它作为依赖项传递,我想知道使用Singleton或是否更好Scoped

services.AddScoped<IHttpCallService, HttpCallService>();
 or 
services.AddSingleton<IHttpCallService, HttpCallService>();
Run Code Online (Sandbox Code Playgroud)

我知道 Singleton 和 Scoped 在实例创建方面存在差异,但我想知道哪一个更有效,更适合这种情况?而且,如果我使用Singleton,是否意味着一切都会同步进行?

Dav*_*oft 5

该recommomended模式是让你HttpCallService依赖于一个HttpClient实例,然后把它注册为一个类型化的客户端

services.AddHttpClient<HttpCallService>();
Run Code Online (Sandbox Code Playgroud)

这将注册HttpCallService为临时服务。