Asp.net-Core
嘗試啟動“MyService”時無法解析“System.String”類型的服務
我在我的 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) { //... }容器無法知道要使用什麼值將依賴字元串注入到服務中。
在上述情況下,
string可以在將服務添加到集合時使用其中一種重載來提供缺失值。//... services.AddScoped<IMyService>(_ => new MyService("value here")); //...這樣,當服務被啟動時,它可以被正確地返回。