C# 调用ToObject会重置读取器的路径

C# 调用ToObject会重置读取器的路径,c#,json.net,C#,Json.net,我正在尝试为JSON.NET编写一个转换器。基本结构如下所示: 公共覆盖对象?ReadJson(JsonReader阅读器,类型objectType,对象?existingValue,JsonSerializer序列化程序){ var-token=JToken.ReadFrom(读卡器); Type valueType=/*解析JSON值应强制到的类型*/; 返回token.ToObject(valueType,序列化程序); } 调用ToObject并传入现有的序列化程序允许我使用相同的转换

我正在尝试为JSON.NET编写一个转换器。基本结构如下所示:

公共覆盖对象?ReadJson(JsonReader阅读器,类型objectType,对象?existingValue,JsonSerializer序列化程序){
var-token=JToken.ReadFrom(读卡器);
Type valueType=/*解析JSON值应强制到的类型*/;
返回token.ToObject(valueType,序列化程序);
}
调用
ToObject
并传入现有的序列化程序允许我使用相同的转换器,即使该类型是递归嵌套的

但是,每次调用
ToObject
时,都会重置路径。在
token.ToObject
的断点处,
reader.Path
返回以下内容:

meta.title.c
[0]
C
[0]
C
我希望看到如下连续迭代:

meta.title.c
meta.title.c[0]
meta.title.c[0].c
meta.title.c[0].c[0]
meta.title.c[0].c[0].c

如何保留调用之间的路径?

通常,您不能。通过向上遍历,获取相应的路径组件,然后反转并连接组件来计算。因此,当从
JsonTextReader
加载
JToken
时,没有要附加的父级,因此包含的路径将不在那里。但你为什么需要这个?你能分享一个演示你想做什么的文件吗?@dbc用于调试转换器。有一个在转换器被调用5次后失败的,我想看看它失败的路径。我能想出来,但这意味着我必须自己追踪路径。