spo*_*ahn 14 dependency-injection .net-core azure-service-fabric asp.net-core
我在Service Fabric Stateless ASP.NET Core应用程序中看到以下异常.
System.InvalidOperationException: Unable to resolve service for type 'System.String' while attempting to activate 'MyService'.
at Microsoft.Extensions.DependencyInjection.ServiceLookup.Service.PopulateCallSites(ServiceProvider provider, ISet`1 callSiteChain, ParameterInfo[] parameters, Boolean throwIfCallSiteNotFound)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.Service.CreateCallSite(ServiceProvider provider, ISet`1 callSiteChain)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetResolveCallSite(IService service, ISet`1 callSiteChain)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetServiceCallSite(Type serviceType, ISet`1 callSiteChain)
Run Code Online (Sandbox Code Playgroud)
怎么能解决不了System.String?我该如何进一步调试?
Nko*_*osi 24
Asp.Net Core中的默认DI框架受限于可用的功能.假设一个类构造函数
public MyService(string dependencyString) {
//...
}
Run Code Online (Sandbox Code Playgroud)
容器无法知道要将哪个值用于要注入服务的依赖字符串.
在上述情况下,string在将服务添加到集合时,可以使用其中一个重载来提供缺失.
//...
services.AddScoped<IMyService>(_ => new MyService("value here"));
//...
Run Code Online (Sandbox Code Playgroud)
这样,当服务被激活时,它可以正确返回.
文档参考:ASP.NET Core中的依赖注入 - > 构造函数注入行为(v2.1)
| 归档时间: |
|
| 查看次数: |
8397 次 |
| 最近记录: |