C# Client Library
A C# Client Library for the AnalyzeRe REST API
Loading...
Searching...
No Matches
JsonCreationConverter[T].cs
Go to the documentation of this file.
1using System;
2using Newtonsoft.Json;
3using Newtonsoft.Json.Linq;
4
6{
13 public abstract class JsonCreationConverter<T> : JsonConverter
14 {
21 public override bool CanConvert(Type objectType)
22 {
23 return typeof(T).IsAssignableFrom(objectType);
24 }
25
34 public override object ReadJson(
35 JsonReader reader,
36 Type objectType,
37 object existingValue,
38 JsonSerializer serializer)
39 {
40 if (reader.TokenType == JsonToken.Null)
41 return null;
42
43 // Load JObject from stream
44 JObject jObject = JObject.Load(reader);
45
46 // Create target object based on JObject
47 T target = Create(objectType, jObject);
48
49 // Populate the object properties
50 using (JsonReader jObjectReader =
52 {
53 serializer.Populate(jObjectReader, target);
54 }
55
56 return target;
57 }
58
65 public override void WriteJson(
66 JsonWriter writer,
67 object value,
68 JsonSerializer serializer)
69 {
70 serializer.Serialize(writer, value);
71 }
72
79 protected abstract T Create(Type objectType, JObject jObject);
80 }
81}
T Create(Type objectType, JObject jObject)
Create an instance of objectType, based properties in the JSON object.
override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
Parses the json to the specified type.
override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
Serializes to the specified type.
static JsonReader CopyReaderForObject(JsonReader reader, JObject jObject)
Creates a new reader for the specified jObject by copying the settings from an existing reader.
override bool CanConvert(Type objectType)
Determines if this converter is designed for deserialization to objects of the specified type.