static JsonSerializer CreateSerializer()
{
var settings = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Include,
DefaultValueHandling = DefaultValueHandling.Include,
MissingMemberHandling = MissingMemberHandling.Ignore,
ObjectCreationHandling = ObjectCreationHandling.Auto,
ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor,
TypeNameHandling = TypeNameHandling.None,
DateParseHandling = DateParseHandling.None,
DateTimeZoneHandling = DateTimeZoneHandling.RoundtripKind,
ContractResolver = new CamelCasePropertyNamesContractResolver(),
Converters = new List<JsonConverter>(new JsonConverter[]
{
new StringEnumConverter(),
new InterfaceProxyConverter(TypeCache.ImplementationBuilder)
})
};
return JsonSerializer.Create(settings);
}