From c3a3d85f47d8ff23091f09f7ad2cb40d7ba402f4 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 23 Nov 2022 11:21:15 +0100 Subject: [PATCH] Only register browsable, concrete activity types --- .../Features/WorkflowManagementFeature.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/Elsa.Workflows.Management/Features/WorkflowManagementFeature.cs b/src/modules/Elsa.Workflows.Management/Features/WorkflowManagementFeature.cs index 413c6d75e..ffc893007 100644 --- a/src/modules/Elsa.Workflows.Management/Features/WorkflowManagementFeature.cs +++ b/src/modules/Elsa.Workflows.Management/Features/WorkflowManagementFeature.cs @@ -1,3 +1,5 @@ +using System.ComponentModel; +using System.Reflection; using Elsa.Common.Extensions; using Elsa.Common.Features; using Elsa.Expressions.Services; @@ -41,7 +43,12 @@ public class WorkflowManagementFeature : FeatureBase public WorkflowManagementFeature AddActivitiesFrom() { - var activityTypes = typeof(TMarker).Assembly.GetExportedTypes().Where(x => typeof(IActivity).IsAssignableFrom(x)).ToList(); + var activityTypes = typeof(TMarker).Assembly.GetExportedTypes().Where(x => + { + var browsableAttr = x.GetCustomAttribute(); + var isBrowsable = browsableAttr == null || browsableAttr.Browsable; + return typeof(IActivity).IsAssignableFrom(x) && !x.IsAbstract && !x.IsInterface && !x.IsGenericType && isBrowsable; + }).ToList(); return AddActivities(activityTypes); }