diff --git a/src/modules/Elsa.Workflows.Core/Serialization/Converters/VariableConverterFactory.cs b/src/modules/Elsa.Workflows.Core/Serialization/Converters/VariableConverterFactory.cs
new file mode 100644
index 000000000..9c66d48f7
--- /dev/null
+++ b/src/modules/Elsa.Workflows.Core/Serialization/Converters/VariableConverterFactory.cs
@@ -0,0 +1,30 @@
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using Elsa.Expressions.Contracts;
+using Elsa.Workflows.Core.Models;
+using Microsoft.Extensions.Logging;
+
+namespace Elsa.Workflows.Core.Serialization.Converters;
+
+///
+/// Produces instances for and .
+///
+public class VariableConverterFactory : JsonConverterFactory
+{
+ private readonly IWellKnownTypeRegistry _wellKnownTypeRegistry;
+ private readonly ILogger _logger;
+
+ ///
+ // ReSharper disable once ContextualLoggerProblem
+ public VariableConverterFactory(IWellKnownTypeRegistry wellKnownTypeRegistry, ILogger logger)
+ {
+ _wellKnownTypeRegistry = wellKnownTypeRegistry;
+ _logger = logger;
+ }
+
+ ///
+ public override bool CanConvert(Type typeToConvert) => typeof(Variable).IsAssignableFrom(typeToConvert);
+
+ ///
+ public override JsonConverter CreateConverter(Type typeToConvert, JsonSerializerOptions options) => new VariableConverter(_wellKnownTypeRegistry, _logger);
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Workflows.Core/Serialization/CustomSerializationOptionConfigurator.cs b/src/modules/Elsa.Workflows.Core/Serialization/CustomSerializationOptionConfigurator.cs
index e8bf8705f..e098c88a2 100644
--- a/src/modules/Elsa.Workflows.Core/Serialization/CustomSerializationOptionConfigurator.cs
+++ b/src/modules/Elsa.Workflows.Core/Serialization/CustomSerializationOptionConfigurator.cs
@@ -2,7 +2,6 @@ using System.Text.Json;
using System.Text.Json.Serialization;
using Elsa.Workflows.Core.Contracts;
using Elsa.Workflows.Core.Serialization.Converters;
-using Elsa.Workflows.Core.Services;
using Microsoft.Extensions.DependencyInjection;
namespace Elsa.Workflows.Core.Serialization;
@@ -14,14 +13,18 @@ public class CustomSerializationOptionConfigurator : ISerializationOptionsConfig
{
private readonly IServiceProvider _serviceProvider;
+ ///
+ /// Initializes a new instance of the class.
+ ///
public CustomSerializationOptionConfigurator(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
-
+
+ ///
public void Configure(JsonSerializerOptions options)
{
- options.Converters.Add(Create());
+ options.Converters.Add(Create());
}
private T Create() => ActivatorUtilities.CreateInstance(_serviceProvider);