diff --git a/src/modules/Elsa.Workflows.Core/Extensions/ExpressionExecutionContextExtensions.cs b/src/modules/Elsa.Workflows.Core/Extensions/ExpressionExecutionContextExtensions.cs
index aba7ae1ac..1deb59793 100644
--- a/src/modules/Elsa.Workflows.Core/Extensions/ExpressionExecutionContextExtensions.cs
+++ b/src/modules/Elsa.Workflows.Core/Extensions/ExpressionExecutionContextExtensions.cs
@@ -8,9 +8,7 @@ using Elsa.Workflows;
using Elsa.Workflows.Activities;
using Elsa.Workflows.Memory;
using Elsa.Workflows.Models;
-using Elsa.Workflows.Options;
using Humanizer;
-using Microsoft.Extensions.Options;
// ReSharper disable once CheckNamespace
namespace Elsa.Extensions;
@@ -74,12 +72,22 @@ public static class ExpressionExecutionContextExtensions
///
/// Returns the of the specified
///
- public static WorkflowExecutionContext GetWorkflowExecutionContext(this ExpressionExecutionContext context) => (WorkflowExecutionContext)context.TransientProperties[WorkflowExecutionContextKey];
+ public static WorkflowExecutionContext GetWorkflowExecutionContext(this ExpressionExecutionContext context)
+ {
+ return context.TransientProperties.TryGetValue(WorkflowExecutionContextKey, out var value)
+ ? (WorkflowExecutionContext)value
+ : throw new InvalidOperationException("WorkflowExecutionContext not found. This value exists only on activity execution contexts.");
+ }
///
/// Returns the of the specified
///
- public static ActivityExecutionContext GetActivityExecutionContext(this ExpressionExecutionContext context) => (ActivityExecutionContext)context.TransientProperties[ActivityExecutionContextKey];
+ public static ActivityExecutionContext GetActivityExecutionContext(this ExpressionExecutionContext context)
+ {
+ return context.TransientProperties.TryGetValue(ActivityExecutionContextKey, out var value)
+ ? (ActivityExecutionContext)value
+ : throw new InvalidOperationException("ActivityExecutionContext not found. This value exists only on activity execution contexts.");
+ }
///
/// Returns the of the specified
@@ -89,7 +97,12 @@ public static class ExpressionExecutionContextExtensions
///
/// Returns the of the specified
///
- public static IActivity GetActivity(this ExpressionExecutionContext context) => (IActivity)context.TransientProperties[ActivityKey];
+ public static IActivity GetActivity(this ExpressionExecutionContext context)
+ {
+ return context.TransientProperties.TryGetValue(ActivityKey, out var value)
+ ? (IActivity)value
+ : throw new InvalidOperationException("Activity not found. This value exists only on activity execution contexts.");
+ }
///
/// Returns the value of the specified input.