diff --git a/src/Squidex.Infrastructure/Orleans/J{T}.cs b/src/Squidex.Infrastructure/Orleans/J{T}.cs index 5aeff07c3..4dfbef361 100644 --- a/src/Squidex.Infrastructure/Orleans/J{T}.cs +++ b/src/Squidex.Infrastructure/Orleans/J{T}.cs @@ -18,6 +18,8 @@ namespace Squidex.Infrastructure.Orleans { public struct J { + private static readonly JsonSerializer DefaultSerializer = JsonSerializer.CreateDefault(); + public T Value { get; } [JsonConstructor] @@ -57,7 +59,7 @@ namespace Squidex.Infrastructure.Orleans { using (Profile.Method(nameof(J))) { - var jsonSerializer = context.ServiceProvider.GetRequiredService(); + var jsonSerializer = GetSerializer(context); var stream = new MemoryStream(); @@ -80,7 +82,7 @@ namespace Squidex.Infrastructure.Orleans { using (Profile.Method(nameof(J))) { - var jsonSerializer = context.ServiceProvider.GetRequiredService(); + var jsonSerializer = GetSerializer(context); var outLength = context.StreamReader.ReadInt(); var outBytes = context.StreamReader.ReadBytes(outLength); @@ -93,5 +95,17 @@ namespace Squidex.Infrastructure.Orleans } } } + + private static JsonSerializer GetSerializer(ISerializerContext context) + { + try + { + return context?.ServiceProvider?.GetService() ?? DefaultSerializer; + } + catch + { + return DefaultSerializer; + } + } } }