我需要在 NetCoreApp 2.2 中集成 GraphQL <TargetFramework>netcoreapp2.2</TargetFramework>
(由于其他原因,我无法升级到 NetCore 3)。
PS。我们在 .Net Core 3.1 中有另一个项目,我们可以使用GraphQL.Server.Transports.AspNetCore.SystemTextJson,我们没有任何问题。该项目中的一切都按预期工作。
我目前收到以下错误:
System.MissingMethodException: Method not found: 'Void GraphQL.ExecutionOptions.set_NameConverter(GraphQL.Conversion.INameConverter)'.
at GraphQL.Server.Internal.DefaultGraphQLExecuter`1.GetOptions(String operationName, String query, Inputs variables, IDictionary`2 context, IServiceProvider requestServices, CancellationToken cancellationToken)
at GraphQL.Server.Internal.DefaultGraphQLExecuter`1.ExecuteAsync(String operationName, String query, Inputs variables, IDictionary`2 context, IServiceProvider requestServices, CancellationToken cancellationToken) in /_/src/Core/Internal/DefaultGraphQLExecuter.cs:line 45
at GraphQL.Server.Transports.AspNetCore.GraphQLHttpMiddleware`1.InvokeAsync(HttpContext context) in /_/src/Transports.AspNetCore/GraphQLHttpMiddleware.cs:line 144
at Microsoft.AspNetCore.Builder.Extensions.UsePathBaseMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
如果我没记错的话,我会收到此错误,因为我使用的是 Nuget 包的不同组合,并且其中一个程序集缺少所需的方法。
这是我在 csproj 中的当前设置,我尝试与其他版本(例如 GraphQL 4.0)交换,但我仍然无法使其工作。
<PackageReference Include="GraphQL" Version="4.2.0" />
<PackageReference Include="GraphQL.MicrosoftDI" Version="4.2.0" />
<PackageReference Include="GraphQL.Server.Transports.AspNetCore.NewtonsoftJson" Version="4.4.1" />
<PackageReference Include="GraphQL.Server.Ui.Playground" Version="4.4.1" />
我的 Startup.cs - ConfigureServices方法
services.AddSingleton<ISchema, MyDataSchema>(serviceProvider => new MyDataSchema(new SelfActivatingServiceProvider(serviceProvider)));
services.AddGraphQL(options =>
{
options.EnableMetrics = true;
})
.AddNewtonsoftJson()
.AddErrorInfoProvider(opt => opt.ExposeExceptionStackTrace = true);
配置方法
app.UseGraphQL<ISchema>();
app.UseGraphQLPlayground();
您能否建议我如何在 .Net Core 2.2 中使用 GraphQL?
如果您知道我可以参考以使其在 .Net Core 2.2 中工作的程序集/代码/文档的正确组合,请帮助我。我找不到旧文档,它始终是最新版本。