繁体   English   中英

在 ASP.NET 核心 GraphQL 中找不到类型 RootQuery 所需的服务

[英]Required service for type RootQuery not found in ASP.NET Core GraphQL

我的项目中有两个查询 - TradeEntity 那些看起来像下面

 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM