From 153fdda6da3f66e4c2596aa8035c07079b93ca68 Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Wed, 6 Feb 2019 10:01:27 +0100 Subject: [PATCH] Type name serialization fixed. --- .../Newtonsoft/TypeNameSerializationBinder.cs | 21 +++++++------------ .../Schemas/Models/ConfigurePreviewUrlsDto.cs | 5 ++++- .../schema-preview-urls-form.component.html | 14 +++++-------- .../schema-preview-urls-form.component.ts | 1 - src/Squidex/app/theme/_bootstrap-vars.scss | 2 +- 5 files changed, 18 insertions(+), 25 deletions(-) diff --git a/src/Squidex.Infrastructure/Json/Newtonsoft/TypeNameSerializationBinder.cs b/src/Squidex.Infrastructure/Json/Newtonsoft/TypeNameSerializationBinder.cs index 8e5d41dc2..326be55e7 100644 --- a/src/Squidex.Infrastructure/Json/Newtonsoft/TypeNameSerializationBinder.cs +++ b/src/Squidex.Infrastructure/Json/Newtonsoft/TypeNameSerializationBinder.cs @@ -6,11 +6,12 @@ // ========================================================================== using System; +using Newtonsoft.Json; using Newtonsoft.Json.Serialization; namespace Squidex.Infrastructure.Json.Newtonsoft { - public class TypeNameSerializationBinder : DefaultSerializationBinder + public sealed class TypeNameSerializationBinder : ISerializationBinder { private readonly TypeNameRegistry typeNameRegistry; @@ -21,26 +22,20 @@ namespace Squidex.Infrastructure.Json.Newtonsoft this.typeNameRegistry = typeNameRegistry; } - public override Type BindToType(string assemblyName, string typeName) + public Type BindToType(string assemblyName, string typeName) { - var type = typeNameRegistry.GetTypeOrNull(typeName); - - return type ?? base.BindToType(assemblyName, typeName); + return typeNameRegistry.GetTypeOrNull(typeName); } - public override void BindToName(Type serializedType, out string assemblyName, out string typeName) + public void BindToName(Type serializedType, out string assemblyName, out string typeName) { assemblyName = null; - var name = typeNameRegistry.GetNameOrNull(serializedType); + typeName = typeNameRegistry.GetNameOrNull(serializedType); - if (name != null) - { - typeName = name; - } - else + if (typeName == null) { - base.BindToName(serializedType, out assemblyName, out typeName); + throw new JsonException("Trying to serialize object with type name."); } } } diff --git a/src/Squidex/Areas/Api/Controllers/Schemas/Models/ConfigurePreviewUrlsDto.cs b/src/Squidex/Areas/Api/Controllers/Schemas/Models/ConfigurePreviewUrlsDto.cs index 22069636e..5016e0c3e 100644 --- a/src/Squidex/Areas/Api/Controllers/Schemas/Models/ConfigurePreviewUrlsDto.cs +++ b/src/Squidex/Areas/Api/Controllers/Schemas/Models/ConfigurePreviewUrlsDto.cs @@ -14,7 +14,10 @@ namespace Squidex.Areas.Api.Controllers.Schemas.Models { public ConfigurePreviewUrls ToCommand() { - return new ConfigurePreviewUrls { PreviewUrls = this }; + return new ConfigurePreviewUrls + { + PreviewUrls = new Dictionary(this) + }; } } } diff --git a/src/Squidex/app/features/schemas/pages/schema/schema-preview-urls-form.component.html b/src/Squidex/app/features/schemas/pages/schema/schema-preview-urls-form.component.html index fdd06b41c..de9a7f24e 100644 --- a/src/Squidex/app/features/schemas/pages/schema/schema-preview-urls-form.component.html +++ b/src/Squidex/app/features/schemas/pages/schema/schema-preview-urls-form.component.html @@ -12,17 +12,17 @@
- +
- +
-