Значение параметра приведения GraphQL в DotNet Core к целому числу

Я использую graphql-dotnet (dotnet GraphQl) для реализации GraphQL в DotNet Core 2.1. У меня есть следующие занятия:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
}
public class CustomerInputType : InputObjectGraphType
{
    public CustomerInputType()
    {
        Name = "CustomerInput";
        Field<NonNullGraphType<IntGraphType>>(nameof(Customer.Id));
        Field<NonNullGraphType<StringGraphType>>(nameof(Customer.Name));
    }
}
public class CustomerOutputType : ObjectGraphType<Customer>
{
    public CustomerOutputType()
    {
        Name = "Customer";
        Field<NonNullGraphType<IntGraphType>>(nameof(Customer.Id));
        Field<NonNullGraphType<StringGraphType>>(nameof(Customer.Name));
    }
}
public class CustomerMutation : ICustomerMutation
{
    public void Resolve(GraphQLMutation graphQLMutation)
    {
        graphQLMutation.FieldAsync<CustomerOutputType, Customer>
        (
            "createCustomer",
            arguments: new QueryArguments
            (
                new QueryArgument<NonNullGraphType<CustomerInputType>> { Name = "customer"}
            ),
            resolve: context =>
            {
                var customer = context.GetArgument<Customer>("customer");
                return Task.FromResult(customer);
            }
        );
    }
}

Вот данные, которые я отправляю этой мутации через GraphIQL:

mutation createCustomer
{ 
    createCustomer(customer:{id: 19, name: "Me"})
    {id name} 
}

Вот ввод внутри кода C #:

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

Часы показывают значение id 0x00000013 вместо 19.

Вот результат в GraphIQL:

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

Мне нужно использовать значение 19 для дальнейшей обработки в репозитории, который вводится в эту мутацию. Однако, когда я передаю объект Customer в репозиторий, значение id в объекте Customer равно 0x00000013, что приводит к сбою дальнейшей последующей обработки, поскольку ожидается 19 вместо 0x00000013.

Почему значение объекта 0x00000013 внутри кода C # еще преобразуется в фактическое значение в GraphIQL? Как привести значение Cusutomer.id к правильному целочисленному значению для дальнейшей обработки до того, как мутация вернет результаты?


person Tom Schreck    schedule 15.01.2020    source источник


Ответы (1)


Это правильно, значение просто отображается как шестнадцатеричное. Это ваш инспектор сбивает вас с толку. 13 шестнадцатеричный как двоичный

10011

И это десятичное

19

https://www.rapidtables.com/convert/number/hex-to-decimal.html

person Zakk Diaz    schedule 16.01.2020
comment
да, он отображается как шестнадцатеричный. Почему это делается в Visual Studio - person Tom Schreck; 16.01.2020
comment
Попробуйте щелкнуть правой кнопкой мыши панель во время отладки и посмотреть, можете ли вы изменить настройку stackoverflow.com/questions/3354453/ - person Zakk Diaz; 16.01.2020
comment
Да я идиот. По какой-то причине был включен шестнадцатеричный дисплей. Спасибо. Слишком долго смотрел на код ... - person Tom Schreck; 16.01.2020
comment
Это случается со всеми нами! = D - person Zakk Diaz; 16.01.2020