diff --git a/src/modules/Elsa.Workflows.Core/Services/JsonPayloadSerializer.cs b/src/modules/Elsa.Workflows.Core/Services/JsonPayloadSerializer.cs
index fc25f62ea..e221f76e4 100644
--- a/src/modules/Elsa.Workflows.Core/Services/JsonPayloadSerializer.cs
+++ b/src/modules/Elsa.Workflows.Core/Services/JsonPayloadSerializer.cs
@@ -3,6 +3,7 @@ using System.Text.Json.Serialization;
using System.Text.Json.Serialization.Metadata;
using Elsa.Workflows.Core.Contracts;
using Elsa.Workflows.Core.Serialization.Converters;
+using Microsoft.Extensions.DependencyInjection;
namespace Elsa.Workflows.Core.Services;
@@ -11,6 +12,16 @@ namespace Elsa.Workflows.Core.Services;
///
public class JsonPayloadSerializer : IPayloadSerializer
{
+ private readonly IServiceProvider _serviceProvider;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public JsonPayloadSerializer(IServiceProvider serviceProvider)
+ {
+ _serviceProvider = serviceProvider;
+ }
+
///
public string Serialize(object payload)
{
@@ -43,6 +54,9 @@ public class JsonPayloadSerializer : IPayloadSerializer
options.Converters.Add(new JsonStringEnumConverter());
options.Converters.Add(JsonMetadataServices.TimeSpanConverter);
options.Converters.Add(new PolymorphicObjectConverterFactory());
+ options.Converters.Add(GetService());
return options;
}
+
+ private T GetService() where T : notnull => ActivatorUtilities.GetServiceOrCreateInstance(_serviceProvider);
}
\ No newline at end of file