2

我正在用 graphql-dotnet 练习。我创建了一个 PropertyQuery,如下所示:

public class PropertyQuery : ObjectGraphType
{
    public PropertyQuery(IPropertyRepository propertyRepository)
    {
        Field<ListGraphType<PropertyType>>(
            "properties",
            resolve: context => propertyRepository.GetAll()
        );

        Field<PropertyType>(
            "property"
            , arguments: new QueryArguments(new QueryArgument<IntGraphType> { Name = "id" })
            , resolve: context => propertyRepository.GetById(context.GetArgument<int>("id"))
         );
    }
}

Visual Studio (2019) 的智能感知出现问题。当我传递方法的resolve参数时Field,智能感知不建议GetArgumentSource等... ResolveFieldContext<TSource>,相反,它建议如下:

在此处输入图像描述

我很困惑这是 Visual Studio 的错误,还是 graphql-dotnet 库有问题。我是graphql的新手,如果intellisense建议错了,就不能继续练习了

4

2 回答 2

2

我很困惑这是 Visual Studio 的错误,还是 graphql-dotnet 库有问题。

这可能是 VS2019 的一个问题,因为 VS2017 中的同一个项目运行良好......

我现在可以在我的机器上重现同样的问题。由于这个问题只有在我们使用 VS2019 开发带有 Graphql 包的项目时才会出现,我认为这可能是一个关于VS2019 Intellisense. (在VS2017中创建和开发项目,一切正常。在VS2019中打开,出现问题)

所以我刚刚在 DC 论坛上报告了这个问题作为解决方法。这是您可以跟踪它的链接。请访问该链接并对该问题进行投票,以便您获得有关进度的通知。希望它有所帮助:)

于 2019-11-21T08:36:28.473 回答
0

感谢您报告此事!这是 C# 完成列表在将 lambda 作为参数传递时推断 lambda 参数类型的方式中的一个错误。我在这里发布了一个最小的独立复制品。

在您的示例中,如果您包含参数,完成应该按预期工作(从而将参数与另一侧的相应参数description对齐)。你能试试这个吗?resolveresolve

于 2019-12-06T23:12:28.413 回答