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(); } ///