Browse Source

Reverted check.

pull/346/head
Sebastian Stehle 7 years ago
parent
commit
74c6ddcd7f
  1. 21
      src/Squidex.Infrastructure/Json/Newtonsoft/TypeNameSerializationBinder.cs

21
src/Squidex.Infrastructure/Json/Newtonsoft/TypeNameSerializationBinder.cs

@ -6,12 +6,11 @@
// ==========================================================================
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
namespace Squidex.Infrastructure.Json.Newtonsoft
{
public sealed class TypeNameSerializationBinder : ISerializationBinder
public sealed class TypeNameSerializationBinder : DefaultSerializationBinder
{
private readonly TypeNameRegistry typeNameRegistry;
@ -22,20 +21,26 @@ namespace Squidex.Infrastructure.Json.Newtonsoft
this.typeNameRegistry = typeNameRegistry;
}
public Type BindToType(string assemblyName, string typeName)
public override Type BindToType(string assemblyName, string typeName)
{
return typeNameRegistry.GetTypeOrNull(typeName);
var type = typeNameRegistry.GetTypeOrNull(typeName);
return type ?? base.BindToType(assemblyName, typeName);
}
public void BindToName(Type serializedType, out string assemblyName, out string typeName)
public override void BindToName(Type serializedType, out string assemblyName, out string typeName)
{
assemblyName = null;
typeName = typeNameRegistry.GetNameOrNull(serializedType);
var name = typeNameRegistry.GetNameOrNull(serializedType);
if (typeName == null)
if (name != null)
{
typeName = name;
}
else
{
throw new JsonException($"Trying to serialize object with type name {serializedType}.");
base.BindToName(serializedType, out assemblyName, out typeName);
}
}
}

Loading…
Cancel
Save