c# - 获取参数不解析
问题描述
我正在使用GetArgument<T>
方法来转换来自 GraphQL 查询的输入参数,其中 T 是输入类 ( InputSearchCriteriaClass
)。虽然我在监视/调试器中看到参数,但它被错误地解析为 class 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
参数全部为零。有什么建议如何正确解析输入类?
解决方案
通常,它工作的唯一方法是通过解析器中的 JObject:
JObject obj = JObject.FromObject(_.Arguments["inputSearch"]);
var o = obj.ToObject<InputSearchCriteriaClass>();
推荐阅读
- python - 为什么 cv2.imread 会改变像素值?
- java - 爪哇 | 移出边界索引,直到它在边界内
- python - 无法将操作“compute_qmap_grid/map/while/PrintV2”转换为张量
- javascript - Angular Material 网格使三列宽度为 100%
- apache-kafka - KafkaIO withLogAppendTime 与 withProcessingTime
- django - django:使用一对一扩展用户模型:如何保存()配置文件模型的字段
- jquery - 我想将父母滚动替换为弹出窗口的滚动
- python - 在 pos 标签列表上应用 Tfidfvectorizer 会产生 ValueError
- java - 评估排序算法的算法复杂度
- python - 如何在 Flask 中创建服务?