using Newtonsoft.Json; using Pilz.Cryptography; using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Pilz.Json.Converters { public class UniquiIDStringJsonConverter : JsonConverter { public override bool CanConvert(Type objectType) { return typeof(UniquieID).IsAssignableFrom(objectType); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var idString = serializer.Deserialize(reader); UniquieID id; if (existingValue is object) id = (UniquieID)existingValue; else id = new UniquieID(); id.ID = idString; return id; } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { serializer.Serialize(writer, ((UniquieID)value).ID); } } }