diff --git a/src/modules/Elsa.Workflows.Core/Serialization/ReferenceHandlers/CrossScopedReferenceHandler.cs b/src/modules/Elsa.Workflows.Core/Serialization/ReferenceHandlers/CrossScopedReferenceHandler.cs
index 32477b95c..fcabf5237 100644
--- a/src/modules/Elsa.Workflows.Core/Serialization/ReferenceHandlers/CrossScopedReferenceHandler.cs
+++ b/src/modules/Elsa.Workflows.Core/Serialization/ReferenceHandlers/CrossScopedReferenceHandler.cs
@@ -24,4 +24,12 @@ public class CrossScopedReferenceHandler : ReferenceHandler
///
/// The reference resolver.
public ReferenceResolver GetResolver() => _rootedResolver!;
+}
+
+public class PerCallReferenceHandlerWrapper : ReferenceHandler
+{
+ public override ReferenceResolver CreateResolver()
+ {
+ return new CrossScopedReferenceHandler().CreateResolver();
+ }
}
\ No newline at end of file
diff --git a/src/modules/Elsa.Workflows.Core/Serialization/Serializers/JsonWorkflowStateSerializer.cs b/src/modules/Elsa.Workflows.Core/Serialization/Serializers/JsonWorkflowStateSerializer.cs
index 681893fca..80be1aa78 100644
--- a/src/modules/Elsa.Workflows.Core/Serialization/Serializers/JsonWorkflowStateSerializer.cs
+++ b/src/modules/Elsa.Workflows.Core/Serialization/Serializers/JsonWorkflowStateSerializer.cs
@@ -126,14 +126,19 @@ public class JsonWorkflowStateSerializer : ConfigurableSerializer, IWorkflowStat
return JsonSerializer.Deserialize(serializedState, options)!;
}
- ///
- public override JsonSerializerOptions GetOptions()
+ // ///
+ // public override JsonSerializerOptions GetOptions()
+ // {
+ // var options = base.GetOptions();
+ // return new JsonSerializerOptions(options)
+ // {
+ // ReferenceHandler = new CrossScopedReferenceHandler()
+ // };
+ // }
+
+ public override void ApplyOptions(JsonSerializerOptions options)
{
- var options = base.GetOptions();
- return new JsonSerializerOptions(options)
- {
- ReferenceHandler = new CrossScopedReferenceHandler()
- };
+ options.ReferenceHandler = new PerCallReferenceHandlerWrapper();
}
///