Added converter to improve object serialization

This commit is contained in:
Florian Rappl
2025-11-08 16:38:36 +01:00
parent 758e6a41e3
commit d03458094b
3 changed files with 69 additions and 2 deletions

View File

@@ -0,0 +1,43 @@
using ElectronNET.API.Entities;
using Newtonsoft.Json;
using System;
namespace ElectronNET.Converter;
public class PageSizeConverter : JsonConverter<PageSize>
{
public override PageSize ReadJson(JsonReader reader, Type objectType, PageSize existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.String)
{
return (string)reader.Value;
}
else if (reader.TokenType == JsonToken.StartObject)
{
return serializer.Deserialize<PageSize>(reader);
}
else
{
throw new JsonSerializationException("Invalid value for PageSize. Expected true, false, or an object.");
}
}
public override void WriteJson(JsonWriter writer, PageSize value, JsonSerializer serializer)
{
if (value is null)
{
writer.WriteUndefined();
}
var str = (string)value;
if (str is not null)
{
writer.WriteValue(str);
}
else
{
serializer.Serialize(writer, value);
}
}
}