Files
Pilz/Pilz.Net/Api/DefaultMessageSerializer.cs
2024-08-16 06:59:39 +02:00

29 lines
856 B
C#

using Newtonsoft.Json;
namespace Pilz.Net.Api;
public class DefaultMessageSerializer : IMessageSerializer
{
private static JsonSerializerSettings? defaultSerializerSettings;
public JsonSerializerSettings DefaultSerializerSettings => defaultSerializerSettings ??= CreateDefaultSerializerSettings();
protected virtual JsonSerializerSettings CreateDefaultSerializerSettings()
{
return new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Auto,
};
}
public virtual string? Serialize(ApiMessage message)
{
return JsonConvert.SerializeObject(message, DefaultSerializerSettings);
}
public virtual ApiMessage? Deserialize(string json, Type target)
{
return JsonConvert.DeserializeObject(json, target, DefaultSerializerSettings) as ApiMessage;
}
}