some work work on api

This commit is contained in:
2024-08-15 09:19:21 +02:00
parent 02a6c3bf6a
commit 4df972c7a4
8 changed files with 194 additions and 39 deletions

View File

@@ -1,14 +1,28 @@
namespace Pilz.Networking.Api;
using Newtonsoft.Json;
namespace Pilz.Networking.Api;
public class DefaultMessageSerializer : IMessageSerializer
{
public ApiMessage? Deserialize(string json)
private static JsonSerializerSettings? defaultSerializerSettings;
public JsonSerializerSettings DefaultSerializerSettings => defaultSerializerSettings ??= CreateDefaultSerializerSettings();
protected virtual JsonSerializerSettings CreateDefaultSerializerSettings()
{
// ...
return new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Auto,
};
}
public string? Serialize(ApiMessage message)
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;
}
}