diff --git a/src/modules/Elsa.Workflows.Core/Extensions/ActivityExecutionContextExtensions.cs b/src/modules/Elsa.Workflows.Core/Extensions/ActivityExecutionContextExtensions.cs index ceb0f01e5..5beda310d 100644 --- a/src/modules/Elsa.Workflows.Core/Extensions/ActivityExecutionContextExtensions.cs +++ b/src/modules/Elsa.Workflows.Core/Extensions/ActivityExecutionContextExtensions.cs @@ -443,22 +443,19 @@ public static partial class ActivityExecutionContextExtensions /// public static void SetExtensionsMetadata(this ActivityExecutionContext context, string key, object? value) { - var extensionsDictionary = context.GetExtensionsMetadata(); - - if(extensionsDictionary == null) extensionsDictionary = new(); - + var extensionsDictionary = context.GetExtensionsMetadata() ?? new Dictionary(); + extensionsDictionary[key] = value; context.Metadata[ExtensionsMetadataKey] = extensionsDictionary; - } /// - /// Retrives the extensin data from the metdata. Represents specific data that is exposed generically for an activity. + /// Retrieves the extension data from the metadata. Represents specific data that is exposed generically for an activity. /// public static Dictionary? GetExtensionsMetadata(this ActivityExecutionContext context) { - return context.Metadata[ExtensionsMetadataKey] as Dictionary; + return context.Metadata.TryGetValue(ExtensionsMetadataKey, out var value) ? value as Dictionary : null; } internal static bool GetHasEvaluatedProperties(this ActivityExecutionContext context) => context.TransientProperties.TryGetValue("HasEvaluatedProperties", out var value) && value;