Newtonsoft.Json反序列化代码流

时间:2018-06-20 13:39:48

标签: c# json.net deserialization

我很难理解不同的组件,特别是。 JsonConverterSerializationBinder一起工作。

我的具体问题是:

  • 我的印象是SerializationBinder将用于确定JsonConverter使用的objectType,但是显然-如果JsonConvert.ConConvert返回true,那么SerializationBinder就不会被称为...

  • 反序列化对象时,库显然会首先使用成员的类型为成员调用CanConvert,如果失败,则将成员设置为默认值,因为它是一个新实例(将要填充的新实例),该成员的当前值的类型。

  • 我如何反序列化具有几种不同类型的IMyInterface[]数组(当然,全部实现该接口)?

  • 难道不应该使用存储在JSON文件中的$type信息来确定类型(使用绑定),然后将其传递给JsonConverter吗?

我想使用自定义绑定,因此我可以根据JSON文件中的JsonConverter信息告诉$type创建哪种类型。但是-如上所述-JsonConverterSerializationBinder并没有像我期望的那样工作。

任何人都可以解释代码流吗?哪个组件何时使用?

0 个答案:

没有答案