我很难理解不同的组件,特别是。 JsonConverter
和SerializationBinder
一起工作。
我的具体问题是:
我的印象是SerializationBinder
将用于确定JsonConverter
使用的objectType,但是显然-如果JsonConvert.ConConvert
返回true
,那么SerializationBinder
就不会被称为...
反序列化对象时,库显然会首先使用成员的类型为成员调用CanConvert
,如果失败,则将成员设置为默认值,因为它是一个新实例(将要填充的新实例),该成员的当前值的类型。
我如何反序列化具有几种不同类型的IMyInterface[]
数组(当然,全部实现该接口)?
$type
信息来确定类型(使用绑定),然后将其传递给JsonConverter
吗?
我想使用自定义绑定,因此我可以根据JSON文件中的JsonConverter
信息告诉$type
创建哪种类型。但是-如上所述-JsonConverter
和SerializationBinder
并没有像我期望的那样工作。
任何人都可以解释代码流吗?哪个组件何时使用?