Files
Partsource/PartSource.Data/Converters/ObjectToJsonConverter.cs
2021-06-29 19:00:13 -04:00

28 lines
1.0 KiB
C#

using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Text;
namespace PartSource.Data.Converters
{
public class ObjectToJsonConverter : ValueConverter<object, string>
{
private static readonly JsonSerializerSettings _serializerSettings = new JsonSerializerSettings()
{
NullValueHandling = NullValueHandling.Ignore,
ContractResolver = new DefaultContractResolver()
{
NamingStrategy = new SnakeCaseNamingStrategy()
}
};
public ObjectToJsonConverter() : base(ObjectToJson, JsonToObject) { }
public static Expression<Func<string, object>> JsonToObject = value => JsonConvert.DeserializeObject(value, _serializerSettings);
public static Expression<Func<object, string>> ObjectToJson = value => JsonConvert.SerializeObject(value, _serializerSettings);
}
}