C# 如何注册从属服务
我注册HttpClient,如下所示:C# 如何注册从属服务,c#,asp.net-mvc,inversion-of-control,C#,Asp.net Mvc,Inversion Of Control,我注册HttpClient,如下所示: services.AddSingleton<HttpClient>(); services.AddSingleton(); 接下来,在代码中,我想注册另一个依赖于此的接口: services.AddSingleton<IMyRepository>( new MyRepository("<string>", "<string>", "<string>",
services.AddSingleton<HttpClient>();
services.AddSingleton();
接下来,在代码中,我想注册另一个依赖于此的接口:
services.AddSingleton<IMyRepository>(
new MyRepository("<string>",
"<string>",
"<string>",
???,
logger));
services.AddSingleton(
新建MyRepository(“,
"",
"",
???,
),;
所以我不知道该放什么???。我可以使用“new HttpClient()”,但这样做违背了注册HttpClient的目的。我基本上需要调用的方法来获取已经添加的引用。想法
谢谢。请从服务提供商处解决此问题:
services.AddSingleton<IMyRepository>(serviceProvider =>
new MyRepository("<string>",
"<string>",
"<string>",
serviceProvider.GetRequiredService<HttpClient>(),
logger));
services.AddSingleton(serviceProvider=>
新建MyRepository(“,
"",
"",
serviceProvider.GetRequiredService(),
),;
顺便说一下,您可能希望使用HttpClientFactory(services.AddHttpClient();
)而不是services.AddSingleton()代码>
有关长寿命静态(或单例)HttpClient出现的DNS问题以及为什么应使用HttpClientFactory的信息,请参阅。从服务提供商处解决此问题:
services.AddSingleton<IMyRepository>(serviceProvider =>
new MyRepository("<string>",
"<string>",
"<string>",
serviceProvider.GetRequiredService<HttpClient>(),
logger));
services.AddSingleton(serviceProvider=>
新建MyRepository(“,
"",
"",
serviceProvider.GetRequiredService(),
),;
顺便说一下,您可能希望使用HttpClientFactory(services.AddHttpClient();
)而不是services.AddSingleton()代码>
有关长寿命静态(或单例)HttpClient出现的DNS问题以及为什么应使用HttpClientFactory的信息,请参阅。var HttpClient=new HttpClient();服务。AddSingleton(httpClient);AddSingleton(新的MyRepository(“,”,“,”,httpClient,logger))代码>?var httpClient=new httpClient();服务。AddSingleton(httpClient);AddSingleton(新的MyRepository(“,”,“,”,httpClient,logger))代码>?我收到一条错误消息-“IServiceCollection”不包含“AddHttpClient”的定义@KevinBurton啊,您可能必须安装Microsoft.Extensions.Http
NuGet软件包才能使用HttpClientFactory。我收到一条错误消息-“IServiceCollection”不包含“AddHttpClient”的定义@KevinBurton啊,您可能必须安装Microsoft.Extensions.Http
NuGet软件包才能使用HttpClientFactory。