我正在使用GetArgument<T>
方法转换来自GraphQL查询的输入参数,其中T是输入类(InputSearchCriteriaClass
)。在监视/调试器中看到参数时,它被错误地解析为类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
的所有参数均为零。有什么建议可以正确解析输入类吗?
答案 0 :(得分:0)
通常,它的唯一工作方式是通过解析器中的JObject:
JObject obj = JObject.FromObject(_.Arguments["inputSearch"]);
var o = obj.ToObject<InputSearchCriteriaClass>();