@@ -28,31 +28,40 @@ namespace RestSharp.Serializers
2828 /// </summary>
2929 public class JsonSerializer : ISerializer
3030 {
31- /// <summary>
31+ private readonly Newtonsoft . Json . JsonSerializer _serializer ;
32+
33+ /// <summary>
3234 /// Default serializer
3335 /// </summary>
3436 public JsonSerializer ( ) {
3537 ContentType = "application/json" ;
38+ _serializer = new Newtonsoft . Json . JsonSerializer {
39+ MissingMemberHandling = MissingMemberHandling . Ignore ,
40+ NullValueHandling = NullValueHandling . Include ,
41+ DefaultValueHandling = DefaultValueHandling . Include
42+ } ;
3643 }
3744
45+ /// <summary>
46+ /// Default serializer with overload for allowing custom Json.NET settings
47+ /// </summary>
48+ public JsonSerializer ( Newtonsoft . Json . JsonSerializer serializer ) {
49+ ContentType = "application/json" ;
50+ _serializer = serializer ;
51+ }
52+
3853 /// <summary>
3954 /// Serialize the object as JSON
4055 /// </summary>
4156 /// <param name="obj">Object to serialize</param>
4257 /// <returns>JSON as String</returns>
4358 public string Serialize ( object obj ) {
44- var serializer = new Newtonsoft . Json . JsonSerializer {
45- MissingMemberHandling = MissingMemberHandling . Ignore ,
46- NullValueHandling = NullValueHandling . Include ,
47- DefaultValueHandling = DefaultValueHandling . Include
48- } ;
49-
5059 using ( var stringWriter = new StringWriter ( ) ) {
5160 using ( var jsonTextWriter = new JsonTextWriter ( stringWriter ) ) {
5261 jsonTextWriter . Formatting = Formatting . Indented ;
5362 jsonTextWriter . QuoteChar = '"' ;
5463
55- serializer . Serialize ( jsonTextWriter , obj ) ;
64+ _serializer . Serialize ( jsonTextWriter , obj ) ;
5665
5766 var result = stringWriter . ToString ( ) ;
5867 return result ;
0 commit comments