diff --git a/src/modules/Elsa.Workflows.Core/Contracts/IActivityFactory.cs b/src/modules/Elsa.Workflows.Core/Contracts/IActivityFactory.cs new file mode 100644 index 000000000..deadc5337 --- /dev/null +++ b/src/modules/Elsa.Workflows.Core/Contracts/IActivityFactory.cs @@ -0,0 +1,9 @@ +using Elsa.Workflows.Models; + +namespace Elsa.Workflows; + +[Obsolete("Use the CreateActivity method on the ActivityConstructorContext context itself")] +public interface IActivityFactory +{ + IActivity Create(Type type, ActivityConstructorContext context); +} \ No newline at end of file diff --git a/src/modules/Elsa.Workflows.Core/Features/WorkflowsFeature.cs b/src/modules/Elsa.Workflows.Core/Features/WorkflowsFeature.cs index 72ef6c157..6fde09cbf 100644 --- a/src/modules/Elsa.Workflows.Core/Features/WorkflowsFeature.cs +++ b/src/modules/Elsa.Workflows.Core/Features/WorkflowsFeature.cs @@ -182,6 +182,7 @@ public class WorkflowsFeature : FeatureBase .AddScoped() .AddSingleton() .AddSingleton() + .AddSingleton() .AddTransient() .AddScoped(typeof(Func), sp => () => sp.GetRequiredService()) .AddScoped() diff --git a/src/modules/Elsa.Workflows.Core/Services/ActivityFactory.cs b/src/modules/Elsa.Workflows.Core/Services/ActivityFactory.cs new file mode 100644 index 000000000..f4cf6a097 --- /dev/null +++ b/src/modules/Elsa.Workflows.Core/Services/ActivityFactory.cs @@ -0,0 +1,13 @@ +using Elsa.Workflows.Models; + +namespace Elsa.Workflows; + +/// +public class ActivityFactory : IActivityFactory +{ + /// + public IActivity Create(Type type, ActivityConstructorContext context) + { + return context.CreateActivity(type); + } +} \ No newline at end of file