在.net 6中注册一个服务,并在GraphQL的查询模式中使用它



我在我的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>();

相关内容

最新更新