给定:接口A,它有自定义序列化器,它将类型注入到最终的JSON中。 A1类也有一个序列化器,但只发出忽略自身类型的属性。
[JsonConverter(typeof(InterfaceAConverter))]
interface A {
}
[JsonConverter(typeof(A1Converter))]
class A1: A {
// Some properties here
}
尝试序列化作为接口显示的变量时:
A a = new A1();
JsonConvert.SerializeObject(a, typeof(A))
忽略接口A上的转换器并直接进入A1转换器。
反向转换器似乎正常工作:
JsonConvert.DeserializeObject<A>(json);
问题是 - 如何强制使用JsonConvert.SerializeObject来使用特定的转换器?如果我从A1类中删除了Converter - 它正确调用了接口序列化程序,但如果我尝试直接序列化A1类,它就不起作用。