GraphQL .NET Core Visual Studio 2019 неправильные предложения

Я тренируюсь с 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"))
         );
    }
}

Проблема возникла с intellisense из Visual Studio (2019). Когда я передал параметр resolve метода Field, intellisense не предлагает GetArgument или Source и т.д ... из ResolveFieldContext<TSource>, вместо этого он предлагает примерно следующее:

введите здесь описание изображения

Я не понимаю, является ли это ошибкой Visual Studio или проблема с библиотекой graphql-dotnet. Я новичок в graphql, и если предложения intellisense неверны, я не могу продолжать практиковаться


person Minh Giang    schedule 19.11.2019    source источник
comment
Ах, это ошибка Visual Studio 2019. Я открыл свой проект в vs2017, и проблема исчезла.   -  person Minh Giang    schedule 19.11.2019
comment
Привет, а вы создали проект в VS2017? Насколько я знаю, некоторая информация о функции Intellisense хранится в скрытой папке .vs в каталоге решения. Поэтому, если у вас есть проект, созданный в VS2017, и вы открываете его в VS2019, иногда миграция нарушает работу Intellisense. Вы можете удалить папку .vs и перезапустить VS2019, чтобы проверить, сохраняется ли она :)   -  person LoLance    schedule 19.11.2019
comment
@ LanceLi-MSFT Нет, я создал проект в vs2019 Enterprise   -  person Minh Giang    schedule 19.11.2019


Ответы (2)


Я не понимаю, является ли это ошибкой Visual Studio или проблема с библиотекой graphql-dotnet.

Есть вероятность, что это одна из проблем с VS2019, поскольку тот же проект в VS2017 работает хорошо ...

Теперь я могу воспроизвести ту же проблему на своей машине. Поскольку эта проблема возникает только тогда, когда мы используем VS2019 для разработки проекта с пакетом Graphql, я думаю, что это может быть одна проблема с VS2019 Intellisense. (Создайте и разработайте проект в VS2017, все работает нормально. Откройте его в VS2019, возникает проблема)

Я только что сообщил об этой проблеме на форуме DC в качестве временного решения. Вот ссылка где это можно отследить. Перейдите по ссылке и проголосуйте за проблему, чтобы получать уведомления о прогрессе. Надеюсь, это поможет :)

person LoLance    schedule 21.11.2019
comment
Большое спасибо. Надеюсь, команда VS скоро решит эту проблему :) - person Minh Giang; 22.11.2019
comment
Я предполагаю, что до исправления может потребоваться некоторое время, хорошая новость заключается в том, что оно уничтожило только часть Intellisense в сборках GraphQL в VS2019, поэтому мы можем временно использовать VS2017 или принять неправильное предложение, потому что система сборки действительно работает хорошо. (система сборки отличается от варианта Intellisense). Надеюсь, исправление скоро появится! - person LoLance; 22.11.2019
comment
Сегодня вышла vs2019 v16.4.0. Но они не исправили эту проблему - person Minh Giang; 04.12.2019

Спасибо, что сообщили об этом! Это ошибка в том, как список завершения C # определяет типы лямбда-параметров, когда лямбда передается в качестве аргумента. Я разместил минимальную автономную репродукцию здесь.

В вашем примере завершение должно работать должным образом, если вы включите аргумент description (таким образом, выровняв аргумент resolve с соответствующим параметром resolve на другой стороне). Не могли бы вы попробовать?

person David Poeschl    schedule 06.12.2019
comment
Обновление: исправление объединено: github.com/dotnet/roslyn/pull/40262. Это должно быть исправлено в следующем выпуске Visual Studio. - person David Poeschl; 12.12.2019
comment
последняя версия 16.4.2 не решила эту проблему - person Minh Giang; 18.12.2019