Json.NET: TypeNameHandling.Interfaces - PullRequest
0 голосов
/ 09 мая 2019

Вопрос

Есть ли способ создать собственную реализацию JsonSerializerSettings, которая работает так, как если бы TypeNameHandling = TypeNameHandling.Interfaces?

Очевидно, что Objects, Arrays, All, None и Auto являются поддерживаемыми значениями здесь.

Единственный способ, которым я могу думать о достижении этого результата, может быть через пользовательский ISerializationBinder ?

Пример

public class Foo
{
    public IBar Bar { get; set; } = new Qux { Id = 1 };
    public Baz Baz { get; set; } = new Baz { Message= "Hi" };
}

десериализуется во что-то вроде

{  
   "Bar":{  
      "$type":"Qux",
      "Id":1
   },
   "Baz":{  
      "Message":"Hi"
   }
}
...