我在我的Dot Net 6项目中使用GraphQL。在我的GraphQL查询模式中,我将业务层称为:
[GraphQLDescription("Get ApplicationParameters")]
public IQueryable<ApplicationParameterDTO> GetApplicationParameter([Service] IApplicationParameterBusiness _applicationParameterBusiness, string appParamName)
{
var applicationParameterlist = new List<ApplicationParameterDTO>();
applicationParameterlist = _applicationParameterBusiness.GetApplicationParameterByappParamName(appParamName).Result;
return applicationParameterlist.ToList().AsQueryable();
}
我试图在program.cs中注册服务:
builder.Services.AddScoped<IApplicationParameterBusiness, ApplicationParameterBusiness>();
但是当我尝试运行项目时,Program.cs
中的var app = builder.Build();
给了我以下错误:
一些服务无法被构造(在验证服务描述符时出错)服务类型:shell . onefps . wsp . discount . business . abstract . iapplicationparameterbusiness Lifetime: Scoped ImplementationType: Shell.OneFps.WSP.Discount.Business.Concrete。ApplicationParameterBusiness':无法解析类型' shell . onefps . wsp . discount . repository . abstract '的服务。当尝试激活'Shell.OneFps.WSP.Discount.Business.Concrete.ApplicationParameterBusiness'.)
我甚至尝试将依赖注入类型更改为AddTransient
,但仍然没有运气。
我能做什么来解决这个错误?
我能够在添加存储库层依赖项和业务层依赖项后运行此代码:
builder.Services.AddTransient<IApplicationParamaterRepository, ApplicationParameterRepository>(serviceProvider =>
{
return new ApplicationParameterRepository(serviceProvider.GetService<ITableStorageService>(), serviceProvider.GetService<ILoggerFactory>());
});
和
builder.Services.AddTransient<IApplicationParameterBusiness, ApplicationParameterBusiness>();