Есть ли способ в 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"
}
Теперь, очевидно, этоинтерфейс не существует, но могу ли я сделать что-то похожее с использованием существующих API-интерфейсов, которые предоставляет Json.Net?