@@ -28,31 +28,40 @@ namespace RestSharp.Serializers
28
28
/// </summary>
29
29
public class JsonSerializer : ISerializer
30
30
{
31
- /// <summary>
31
+ private readonly Newtonsoft . Json . JsonSerializer _serializer ;
32
+
33
+ /// <summary>
32
34
/// Default serializer
33
35
/// </summary>
34
36
public JsonSerializer ( ) {
35
37
ContentType = "application/json" ;
38
+ _serializer = new Newtonsoft . Json . JsonSerializer {
39
+ MissingMemberHandling = MissingMemberHandling . Ignore ,
40
+ NullValueHandling = NullValueHandling . Include ,
41
+ DefaultValueHandling = DefaultValueHandling . Include
42
+ } ;
36
43
}
37
44
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
+
38
53
/// <summary>
39
54
/// Serialize the object as JSON
40
55
/// </summary>
41
56
/// <param name="obj">Object to serialize</param>
42
57
/// <returns>JSON as String</returns>
43
58
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
-
50
59
using ( var stringWriter = new StringWriter ( ) ) {
51
60
using ( var jsonTextWriter = new JsonTextWriter ( stringWriter ) ) {
52
61
jsonTextWriter . Formatting = Formatting . Indented ;
53
62
jsonTextWriter . QuoteChar = '"' ;
54
63
55
- serializer . Serialize ( jsonTextWriter , obj ) ;
64
+ _serializer . Serialize ( jsonTextWriter , obj ) ;
56
65
57
66
var result = stringWriter . ToString ( ) ;
58
67
return result ;
0 commit comments