Files
speckle-sharp-connectors/DUI3/Speckle.Connectors.DUI/Utils/JsonSerializerSettingsFactory.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

35 lines
1.1 KiB
C#

using Speckle.Connectors.DUI.Models.Card.SendFilter;
using Speckle.InterfaceGenerator;
using Speckle.Newtonsoft.Json;
using Speckle.Newtonsoft.Json.Serialization;
namespace Speckle.Connectors.DUI.Utils;
[GenerateAutoInterface]
public class JsonSerializerSettingsFactory(IServiceProvider serviceProvider) : IJsonSerializerSettingsFactory
{
public JsonSerializerSettings Create()
{
// Register WebView2 panel stuff
JsonSerializerSettings settings =
new()
{
Error = (_, args) =>
{
// POC: we should probably do a bit more than just swallowing this!
Console.WriteLine("*** JSON ERROR: " + args.ErrorContext);
},
ContractResolver = new CamelCasePropertyNamesContractResolver(),
NullValueHandling = NullValueHandling.Ignore,
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate,
Converters =
{
new DiscriminatedObjectConverter(serviceProvider),
new AbstractConverter<DiscriminatedObject, ISendFilter>()
}
};
return settings;
}
}