28 lines
767 B
C#
28 lines
767 B
C#
using Newtonsoft.Json;
|
|
using System;
|
|
|
|
namespace Pilz.Configuration;
|
|
|
|
public class SettingsValueOptionJsonConverter : JsonConverter
|
|
{
|
|
public override bool CanConvert(Type objectType)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
|
{
|
|
if (existingValue is ISettingsValueOptionValueAccessor option)
|
|
option.ValueRaw = reader.Value;
|
|
return existingValue;
|
|
}
|
|
|
|
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
|
{
|
|
if (value is ISettingsValueOptionValueAccessor option)
|
|
writer.WriteValue(option.ValueRaw);
|
|
else
|
|
writer.WriteNull();
|
|
}
|
|
}
|