Files
speckle-sharp-connectors/DUI3/Speckle.Connectors.DUI/Utils/JsonSerializer.cs
T
Adam Hathcock abcf58d369 DiscriminatedObjectConverter needs DI (#363)
* DiscriminatedObjectConverter needs DI

* settings shouldn't be injected...use injected serializer

* format

* make the factory a singleton

* fix build issue
2024-11-22 15:16:19 +03:00

25 lines
895 B
C#

using Speckle.Newtonsoft.Json;
namespace Speckle.Connectors.DUI.Utils;
public interface IJsonSerializer
{
string Serialize(object? obj);
T? Deserialize<T>(string json)
where T : class;
object? Deserialize(string json, Type type);
}
public class JsonSerializer(IJsonSerializerSettingsFactory jsonSerializerSettingsFactory) : IJsonSerializer
{
private readonly JsonSerializerSettings _serializerOptions = jsonSerializerSettingsFactory.Create();
public string Serialize(object? obj) => JsonConvert.SerializeObject(obj, _serializerOptions);
// POC: this seemms more like a IModelsDeserializer?, seems disconnected from this class
public T? Deserialize<T>(string json)
where T : class => JsonConvert.DeserializeObject<T>(json, _serializerOptions);
public object? Deserialize(string json, Type type) => JsonConvert.DeserializeObject(json, type, _serializerOptions);
}