Skip to content

Commit dfda8d6

Browse files
author
Brandon
committed
Added overload constructor parameter to JsonSerializer.cs for allowing the Json.NET serializer to be passed in so that options for serialization can be set such as NullValueHandling, DefaultValueHandling, etc.
1 parent d8122b0 commit dfda8d6

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

RestSharp/Serializers/JsonSerializer.cs

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)