ASP.NET Core 7中MapGraphQL方法调用出现命名空间冲突求助
解决ASP.NET Core 7中MapGraphQL方法歧义的问题
方法1:明确指定调用的扩展方法所属类
直接在调用时写出完整类名,让编译器精准匹配目标方法:
// 使用HotChocolate的MapGraphQL app.UseEndpoints(endpoints => { HotChocolate.AspNetCore.Extensions.EndpointRouteBuilderExtensions.MapGraphQL(endpoints); }); // 或使用GraphQL.Server的MapGraphQL app.UseEndpoints(endpoints => { GraphQL.Server.Transports.AspNetCore.GraphQLHttpEndpointRouteBuilderExtensions.MapGraphQL(endpoints); });
方法2:移除冲突的NuGet包
一个项目只需引入一套GraphQL实现库,同时引入两个库会引发依赖冲突:
- 若教程基于HotChocolate,卸载
GraphQL.Server.Transports.AspNetCore包,仅保留HotChocolate相关依赖 - 若教程基于GraphQL.Server,卸载
HotChocolate.AspNetCore包,仅保留GraphQL.Server系列包
方法3:优化命名空间别名用法
如果必须同时保留两个包,可给命名空间设置别名后指定调用:
// 文件顶部设置别名 using HotChocolateExt = HotChocolate.AspNetCore.Extensions; using GraphQLServerExt = GraphQL.Server.Transports.AspNetCore; // 调用时指定别名 app.UseEndpoints(endpoints => { // 调用HotChocolate的方法 HotChocolateExt.EndpointRouteBuilderExtensions.MapGraphQL(endpoints); // 或调用GraphQL.Server的方法 // GraphQLServerExt.GraphQLHttpEndpointRouteBuilderExtensions.MapGraphQL(endpoints); });
内容的提问来源于stack exchange,提问作者Sol
相关产品推荐
相关产品推荐

