Json.Net中是否有任何方法可以告诉它像正常情况那样序列化大多数类型,但是要使用自定义序列化程序,只要它发现x类型的对象,我都会提供它。
从本质上讲,这里的想法是AFAIK,如果要对Json.Net中的类型使用自定义序列化,则必须指定如何在类型内完成操作。通过实现ISerializable或使用属性。但是,如果我无权访问该类型,则无法修改该类型的序列化。
相反,我想知道是否可以将该信息注入jsonConverter中,以便它知道对类型使用自定义序列化。
假设地,我想做这样的事情:
class A
{
B B {get; set;}
}
class B
{
}
BSerializer : ISerilalizer<B>
{
public string Serialize(B obj) => "This is a B"
}
...
JsonConverter.SerializeObject(new A{B = new B()}, new BSerializer())
此序列化的结果将是
{
"B" : "This is a B"
}
现在显然该接口不存在,但是我可以使用Json.Net提供的现有API做类似的事情吗?