Enhance JSON serialization

Introduced improved encoding by setting the JavaScriptEncoder to unicode ranges and added necessary using directives. Additionally, the Serialize method is now appropriately marked to indicate its use of code that requires unreferenced code during linking, following best practices for code that may be subject to trimming in a .NET environment.
This commit is contained in:
Sipke Schoorstra 2024-03-12 17:47:58 +01:00
parent f568df6767
commit 519ab07a1c

View file

@ -1,6 +1,9 @@
using System.Diagnostics.CodeAnalysis;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
using System.Text.Unicode;
using Elsa.Expressions.Helpers;
using Elsa.Expressions.Models;
using Elsa.Extensions;
@ -172,9 +175,13 @@ public class JintJavaScriptEvaluator : IJavaScriptEvaluator
return result.ToObject();
}
[RequiresUnreferencedCode("Calls System.Text.Json.JsonSerializer.Serialize<TValue>(TValue, JsonSerializerOptions)")]
private static string Serialize(object value)
{
var options = new JsonSerializerOptions();
var options = new JsonSerializerOptions
{
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
};
options.Converters.Add(new JsonStringEnumConverter());
return JsonSerializer.Serialize(value, options);