【发布时间】:2013-04-18 14:33:12
【问题描述】:
我正在写一个JsonConverter 来执行一些我需要在读/写时完成的转换任务。特别是,我将采用现有的序列化行为,并在写入/读取时添加一些附加属性。
在JsonConverter 内部,我想利用传递的JsonSerializer 实例来执行大部分转换功能。但是,当我这样做时,我最终会进入一个递归循环,其中序列化程序调用我的转换器,然后调用序列化程序,再调用转换器等等。
我见过人们使用JsonConvert.SerializeObject,从序列化程序实例中传入所有转换器除了this。但是,这对我不起作用,因为它绕过了我在序列化程序上完成的所有其他自定义,例如自定义合同解析器和 DateTime 处理。
有没有办法:
- 使用传递给我的序列化程序实例,但以某种方式排除我的转换器,或者
- 克隆传递给我的序列化程序(无需手动构建新序列化程序并逐个属性地复制它)并删除我的转换器?
【问题讨论】:
标签: c# .net json serialization json.net