diff --git a/src/persistence/Elsa.Persistence.MongoDb/Serializers/JObjectSerializer.cs b/src/persistence/Elsa.Persistence.MongoDb/Serializers/JObjectSerializer.cs index 5fb0810ad..d3e493d92 100644 --- a/src/persistence/Elsa.Persistence.MongoDb/Serializers/JObjectSerializer.cs +++ b/src/persistence/Elsa.Persistence.MongoDb/Serializers/JObjectSerializer.cs @@ -1,4 +1,5 @@ using System; +using Elsa.Serialization.Converters; using MongoDB.Bson.Serialization; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -10,11 +11,17 @@ namespace Elsa.Persistence.MongoDb.Serializers public class JObjectSerializer : IBsonSerializer { public static JObjectSerializer Instance { get; } = new(); + private readonly JsonSerializerSettings _serializerSettings; - private readonly JsonSerializerSettings _serializerSettings = new JsonSerializerSettings + public JObjectSerializer() { - NullValueHandling = NullValueHandling.Ignore - }.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); + _serializerSettings = new JsonSerializerSettings + { + NullValueHandling = NullValueHandling.Ignore + }.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); + + _serializerSettings.Converters.Add(new TypeJsonConverter()); + } public Type ValueType => typeof(JObject); diff --git a/src/persistence/Elsa.Persistence.MongoDb/Serializers/ObjectSerializer.cs b/src/persistence/Elsa.Persistence.MongoDb/Serializers/ObjectSerializer.cs index ef1e4186e..f26bdd15b 100644 --- a/src/persistence/Elsa.Persistence.MongoDb/Serializers/ObjectSerializer.cs +++ b/src/persistence/Elsa.Persistence.MongoDb/Serializers/ObjectSerializer.cs @@ -1,4 +1,5 @@ using System; +using Elsa.Serialization.Converters; using MongoDB.Bson.Serialization; using Newtonsoft.Json; using NodaTime; @@ -9,13 +10,19 @@ namespace Elsa.Persistence.MongoDb.Serializers public class ObjectSerializer : IBsonSerializer { public static ObjectSerializer Instance { get; } = new(); + private readonly JsonSerializerSettings _serializerSettings; - private readonly JsonSerializerSettings _serializerSettings = new JsonSerializerSettings + public ObjectSerializer() { - NullValueHandling = NullValueHandling.Ignore, - TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple, - TypeNameHandling = TypeNameHandling.Auto, - }.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); + _serializerSettings = new JsonSerializerSettings + { + NullValueHandling = NullValueHandling.Ignore, + TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple, + TypeNameHandling = TypeNameHandling.Auto, + }.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); + + _serializerSettings.Converters.Add(new TypeJsonConverter()); + } public Type ValueType => typeof(object); diff --git a/src/persistence/Elsa.Persistence.MongoDb/Serializers/VariablesSerializer.cs b/src/persistence/Elsa.Persistence.MongoDb/Serializers/VariablesSerializer.cs index b89baa8a6..cc5e40174 100644 --- a/src/persistence/Elsa.Persistence.MongoDb/Serializers/VariablesSerializer.cs +++ b/src/persistence/Elsa.Persistence.MongoDb/Serializers/VariablesSerializer.cs @@ -1,5 +1,6 @@ using System; using Elsa.Models; +using Elsa.Serialization.Converters; using MongoDB.Bson.Serialization; using Newtonsoft.Json; using NodaTime; @@ -10,14 +11,20 @@ namespace Elsa.Persistence.MongoDb.Serializers public class VariablesSerializer : IBsonSerializer { public static VariablesSerializer Instance { get; } = new(); + private readonly JsonSerializerSettings _serializerSettings; - private readonly JsonSerializerSettings _serializerSettings = new JsonSerializerSettings + public VariablesSerializer() { - NullValueHandling = NullValueHandling.Ignore, - TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple, - TypeNameHandling = TypeNameHandling.Auto, - }.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); - + _serializerSettings = new JsonSerializerSettings + { + NullValueHandling = NullValueHandling.Ignore, + TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple, + TypeNameHandling = TypeNameHandling.Auto, + }.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); + + _serializerSettings.Converters.Add(new TypeJsonConverter()); + } + public Type ValueType => typeof(Variables); public void Serialize(BsonSerializationContext context, BsonSerializationArgs args, object value) => Serialize(context, args, (Variables) value);