问题描述
1. There is no object type implementing interface `IAddress`. (HotChocolate.Types.InterfaceType<Grains.Models.Interfaces.IAddress>)
at HotChocolate.Configuration.TypeInitializer.Initialize(Func`1 schemaResolver,IReadOnlySchemaOptions options)
at HotChocolate.SchemaBuilder.Setup.InitializeTypes(SchemaBuilder builder,DescriptorContext context,IBindingLookup bindingLookup,IReadOnlyList`1 types,LazySchema lazySchema)
at HotChocolate.SchemaBuilder.Setup.Create(SchemaBuilder builder)
at HotChocolate.SchemaBuilder.Create()
at HotChocolate.SchemaBuilder.HotChocolate.ISchemaBuilder.Create()
at HotChocolate.Execution.RequestExecutorResolver.CreateSchemaAsync(NameString schemaName,RequestExecutorSetup options,IServiceProvider serviceProvider,CancellationToken cancellationToken)
at HotChocolate.Execution.RequestExecutorResolver.CreateSchemaServicesAsync(NameString schemaName,CancellationToken cancellationToken)
at HotChocolate.Execution.RequestExecutorResolver.GetRequestExecutorNoLockAsync(NameString schemaName,CancellationToken cancellationToken)
at HotChocolate.Execution.RequestExecutorResolver.GetRequestExecutorAsync(NameString schemaName,CancellationToken cancellationToken)
at HotChocolate.Execution.RequestExecutorProxy.GetRequestExecutorAsync(CancellationToken cancellationToken)
at HotChocolate.AspNetCore.HttpPostMiddleware.HandleRequestAsync(HttpContext context,AllowedContentType contentType)
at HotChocolate.AspNetCore.HttpPostMiddleware.InvokeAsync(HttpContext context)
at HotChocolate.AspNetCore.WebSocketSubscriptionMiddleware.InvokeAsync(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint,Task requestTask,ILogger logger)
在使用dot net web api实现graphql服务时遇到上述问题。
public class UserModel
{
public List<IAddress> Addresses { get; set; }
}
这是查询
public class Query
{
readonly IUserService _userService = null;
public Query(IUserService userService)
{
_userService = userService;
}
public List<UserModel> Users => _userService.GetUsers();
}
这是配置
public void ConfigureServices(IServiceCollection services)
{
_ = services.AddMvc();
_ = services.AddControllers();
_ = services.AddSingleton(CreateClusterClient);
_ = services.AddScoped<IUserService,UserService>();
_ = services.AddScoped<Query>();
_ = services.AddGraphQLServer().AddQueryType<Query>();
_ = services.AddGraphQLServer().AddType<UserType>();
}
我正在使用上面的配置,模型,查询和其他东西。
解决方法
您的 objectType 定义是否实现了该接口?还是对象定义中的返回类型被定义为指定的联合?