Browse Source

Added Guid serialization support

voice-allocs
RogueException 7 years ago
parent
commit
b0147a9126
2 changed files with 19 additions and 3 deletions
  1. +16
    -1
      src/Discord.Net.Serialization/Json/Converters/Primitives.Other.cs
  2. +3
    -2
      src/Discord.Net.Serialization/Json/JsonFormat.cs

src/Discord.Net.Serialization/Json/Converters/Primitives.Bool.cs → src/Discord.Net.Serialization/Json/Converters/Primitives.Other.cs View File

@@ -1,4 +1,5 @@
using System.Text.Json;
using System;
using System.Text.Json;

namespace Discord.Serialization.Json.Converters
{
@@ -18,4 +19,18 @@ namespace Discord.Serialization.Json.Converters
public void Write(JsonWriter writer, bool value)
=> writer.WriteValue(value);
}

internal class GuidPropertyConverter : IJsonPropertyConverter<Guid>
{
public Guid Read(JsonReader reader, bool read = true)
{
if (read)
reader.Read();
if (reader.ValueType != JsonValueType.String)
throw new SerializationException("Bad input, expected String");
return Guid.Parse(reader.ParseString());
}
public void Write(JsonWriter writer, Guid value)
=> writer.WriteValue(value);
}
}

+ 3
- 2
src/Discord.Net.Serialization/Json/JsonFormat.cs View File

@@ -11,8 +11,6 @@ namespace Discord.Serialization.Json
{
public JsonFormat()
{
AddConverter<bool, Converters.BooleanPropertyConverter>();

AddConverter<sbyte, Converters.Int8PropertyConverter>();
AddConverter<short, Converters.Int16PropertyConverter>();
AddConverter<int, Converters.Int32PropertyConverter>();
@@ -33,6 +31,9 @@ namespace Discord.Serialization.Json
AddConverter<DateTime, Converters.DateTimePropertyConverter>();
AddConverter<DateTimeOffset, Converters.DateTimeOffsetPropertyConverter>();

AddConverter<bool, Converters.BooleanPropertyConverter>();
AddConverter<Guid, Converters.GuidPropertyConverter>();

AddGenericConverter(typeof(List<>), typeof(Converters.ListPropertyConverter<>));
AddGenericConverter(typeof(Nullable<>), typeof(Converters.NullablePropertyConverter<>));



Loading…
Cancel
Save