[英]Required service for type RootQuery not found in ASP.NET Core GraphQL
我的项目中有两个查询 - Trade
和Entity
。 那些看起来像下面
public class TradeQuery : ObjectGraphType
{
public TradeQuery(ITradeService tradeservice)
{
Field<ListGraphType<TradeType>>("trades", resolve: r => { return tradeservice.GetTradesAsync(); });
Field<TradeType>("trade", arguments: new QueryArguments(new QueryArgument<IntGraphType> { Name = "id" }),
resolve: context =>
{
return tradeservice.GetTradeByIdAsync(context.GetArgument<int>("id"));
});
}
}
public class EntityQuery : ObjectGraphType
{
public EntityQuery(IEntityService tradeservice)
{
Field<ListGraphType<EntityType>>("Entitys", resolve: r => { return tradeservice.GetEntitysAsync(); });
Field<EntityType>("Entity", arguments: new QueryArguments(new QueryArgument<IntGraphType> { Name = "id" }),
resolve: context =>
{
return tradeservice.GetEntityByIdAsync(context.GetArgument<int>("id"));
});
}
}
并为此设计了一个RootQuery
public class RootQuery : ObjectGraphType
{
public RootQuery()
{
Field<TradeQuery>("tradeQuery", resolve: r => new { });
Field<EntityQuery>("EntityQuery", resolve: r => new { });
}
}
RootSchema如下
public class RootSchema : Schema
{
public RootSchema(IServiceProvider serviceProvider) : base(serviceProvider)
{
Query = serviceProvider.GetRequiredService<RootQuery>();
Mutation = serviceProvider.GetRequiredService<RootMutation>();
}
}
当我运行此应用程序时,它在下一行给出异常
Query = serviceProvider.GetRequiredService<RootQuery>();
例外情况是 -找不到类型 ProjectName.RootQuery 所需的服务
我正在使用GraphQL.Server.Transports.AspNetCore.SystemTextJson nuget 4.4.1版本
你能指导一下,可能缺少什么?
将RootQuery
添加到您的服务容器。
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
...
services.AddScoped<RootQuery>();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.