diff --git a/src/modules/Elsa.Workflows.Core/Models/WorkflowExecutionContext.cs b/src/modules/Elsa.Workflows.Core/Models/WorkflowExecutionContext.cs index f2836105e..239f27235 100644 --- a/src/modules/Elsa.Workflows.Core/Models/WorkflowExecutionContext.cs +++ b/src/modules/Elsa.Workflows.Core/Models/WorkflowExecutionContext.cs @@ -1,5 +1,6 @@ using System.Collections.ObjectModel; using Elsa.Common.Extensions; +using Elsa.Expressions.Helpers; using Elsa.Expressions.Models; using Elsa.Workflows.Core.Services; using Microsoft.Extensions.DependencyInjection; @@ -137,7 +138,7 @@ public class WorkflowExecutionContext public ActivityNode FindNodeById(string nodeId) => NodeIdLookup[nodeId]; public ActivityNode FindNodeByActivity(IActivity activity) => NodeActivityLookup[activity]; public IActivity FindActivityById(string activityId) => FindNodeById(activityId).Activity; - public T? GetProperty(string key) => Properties.TryGetValue(key, out var value) ? (T?)value : default(T); + public T? GetProperty(string key) => Properties.TryGetValue(key, out var value) ? value.ConvertTo() : default; public void SetProperty(string key, T value) => Properties[key] = value!; public T UpdateProperty(string key, Func updater) diff --git a/src/modules/Elsa.Workflows.Core/Serialization/Converters/PropertyBagConverter.cs b/src/modules/Elsa.Workflows.Core/Serialization/Converters/PropertyBagConverter.cs index 76f6d616c..7ecd356c5 100644 --- a/src/modules/Elsa.Workflows.Core/Serialization/Converters/PropertyBagConverter.cs +++ b/src/modules/Elsa.Workflows.Core/Serialization/Converters/PropertyBagConverter.cs @@ -6,7 +6,7 @@ namespace Elsa.Workflows.Core.Serialization.Converters; public class PropertyBagConverter : JsonConverter { - public override PropertyBag? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public override PropertyBag Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { var dictionary = JsonSerializer.Deserialize>(ref reader); return new PropertyBag(dictionary);