gpt4 book ai didi

asp.net-core - 尝试激活 'System.String' 时无法解析类型 'MyService' 的服务

转载 作者:行者123 更新时间:2023-12-01 19:36:53 28 4
gpt4 key购买 nike

我在 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)

它怎么可能无法解析System.String?我该如何进一步调试?

最佳答案

Asp.Net Core 中的默认 DI 框架的可用功能受到限制。假设类构造函数如

public MyService(string dependencyString) {
//...
}

容器无法知道要使用什么值将依赖字符串注入(inject)到服务中。

在上述情况下,将服务添加到集合时,可以使用其中一个重载来提供缺少的字符串

//...

services.AddScoped<IMyService>(_ => new MyService("value here"));

//...

这样当服务被激活时就可以正确返回。

<小时/>

文档引用:Dependency injection in ASP.NET Core -> Constructor injection behavior (v2.1)

关于asp.net-core - 尝试激活 'System.String' 时无法解析类型 'MyService' 的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49824690/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com