Я использую метод GetArgument<T>
для преобразования входных аргументов из запроса GraphQL, где T - это входной класс (InputSearchCriteriaClass
). Хотя я вижу аргументы в watch / debugger, он неправильно разбирается на класс T
.
Класс ввода:
public class InputSearchCriteriaClass
{
public InputSearchCriteriaClass()
{
carrierGases = new List<int>();
}
public List<int> carrierGases { get; set; }
}
Я использую следующий соответствующий тип для этого класса:
public class SearchCriteriaInputType: InputObjectGraphType<InputSearchCriteriaClass>
{
public SearchCriteriaInputType()
{
Name = "inputSearch";
Field(x => x.carrierGases, type: typeof(ListGraphType<IntGraphType>)).Description("List of available carrier gases");
}
}
Для обработки запроса используется следующий код:
Field<IntGraphType>("getInstrumentsCount",
arguments: new QueryArguments(new QueryArgument<SearchCriteriaInputType>
{
Name = "inputSearch",
Description = "text"
}),
resolve: _ =>
{
var id = _.GetArgument<SearchCriteriaInputType>("inputSearch");
return 1;
});
Я пытаюсь выполнить следующий запрос:
query
{
getInstrumentsCount(inputSearch: {
carrierGases:[1, 2],
})
}
То, что id
в резольвере имеет все нулевые аргументы. Есть какие-нибудь предложения, как правильно проанализировать входной класс?