public string Serialize(object obj)
        {
            var serializer = new JsonSerializer
            {
                MissingMemberHandling = MissingMemberHandling.Ignore,
                NullValueHandling     = NullHandling,
                DefaultValueHandling  = DefaultValueHandling.Include,
                ContractResolver      = JsonContractResolver
            };

            if (JsonConverters != null)
            {
                foreach (var converter in JsonConverters.Reverse().Where(writer => writer.CanWrite))
                {
                    serializer.Converters.Add(converter);
                }
            }

            using (var stringWriter = new StringWriter())
                using (var jsonTextWriter = new JsonTextWriter(stringWriter)
                {
                    QuoteName = QuoteName
                })
                {
                    jsonTextWriter.Formatting = Formatting.Indented;
                    jsonTextWriter.QuoteChar  = '"';
                    serializer.Serialize(jsonTextWriter, obj);
                    return(stringWriter.ToString());
                }
        }
        public T Deserialize <T>(string content)
        {
            var serializer = new JsonSerializer
            {
                MissingMemberHandling = MissingMemberHandling.Ignore,
                NullValueHandling     = NullHandling,
                DefaultValueHandling  = DefaultValueHandling.Include
            };

            if (JsonConverters != null)
            {
                foreach (var converter in JsonConverters.Reverse().Where(writer => writer.CanRead))
                {
                    serializer.Converters.Add(converter);
                }
            }

            using (var reader = new StringReader(content))
                using (var jsonReader = new JsonTextReader(reader))
                    return(serializer.Deserialize <T>(jsonReader));
        }