diff --git a/src/modules/Elsa.Workflows.Core/Activities/Composite.cs b/src/modules/Elsa.Workflows.Core/Activities/Composite.cs index 05925dd3e..f03d43876 100644 --- a/src/modules/Elsa.Workflows.Core/Activities/Composite.cs +++ b/src/modules/Elsa.Workflows.Core/Activities/Composite.cs @@ -43,7 +43,7 @@ public abstract class Composite : Activity, IVariableContainer /// [Port] [Browsable(false)] - //[JsonExpandable] // Composite activities' Root is intended to be constructed from code only. + [JsonExpandable] // Composite activities' Root is intended to be constructed from code only. public IActivity Root { get; set; } = new Sequence(); /// diff --git a/src/modules/Elsa.Workflows.Core/Serialization/Converters/JsonExpandableConverter.cs b/src/modules/Elsa.Workflows.Core/Serialization/Converters/JsonExpandableConverter.cs index 80d6390bd..d10dad370 100644 --- a/src/modules/Elsa.Workflows.Core/Serialization/Converters/JsonExpandableConverter.cs +++ b/src/modules/Elsa.Workflows.Core/Serialization/Converters/JsonExpandableConverter.cs @@ -22,13 +22,14 @@ public class JsonExpandableConverter : JsonConverter { writer.WriteStartObject(); - var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); + var properties = value?.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance) ?? Array.Empty(); var newOptions = new JsonSerializerOptions(options); - newOptions.Converters.RemoveWhere(x => x is JsonExpandableConverterFactory); - foreach (var property in properties) { + if (property.GetCustomAttribute() != null) + continue; + if (property.GetCustomAttribute() != null) continue; diff --git a/src/modules/Elsa.Workflows.Management/Activities/WorkflowDefinitionActivity/WorkflowDefinitionActivity.cs b/src/modules/Elsa.Workflows.Management/Activities/WorkflowDefinitionActivity/WorkflowDefinitionActivity.cs index 6292907b3..e926d274b 100644 --- a/src/modules/Elsa.Workflows.Management/Activities/WorkflowDefinitionActivity/WorkflowDefinitionActivity.cs +++ b/src/modules/Elsa.Workflows.Management/Activities/WorkflowDefinitionActivity/WorkflowDefinitionActivity.cs @@ -1,6 +1,7 @@ using System.ComponentModel; using Elsa.Common.Models; using Elsa.Extensions; +using Elsa.Workflows.Core.Attributes; using Elsa.Workflows.Core.Contracts; using Elsa.Workflows.Core.Models; using Elsa.Workflows.Core.Services; @@ -20,6 +21,7 @@ public class WorkflowDefinitionActivity : Activity, IInitializable /// /// The activity to schedule for execution. /// + [JsonExpandable] public IActivity Root { get; set; } = default!; ///