diff --git a/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/Binary/BinarySerializationHelper.cs b/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/Binary/BinarySerializationHelper.cs
deleted file mode 100644
index 31a9ff280b..0000000000
--- a/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/Binary/BinarySerializationHelper.cs
+++ /dev/null
@@ -1,126 +0,0 @@
-using System;
-using System.IO;
-using System.Runtime.Serialization;
-using System.Runtime.Serialization.Formatters.Binary;
-
-namespace Volo.Abp.Serialization.Binary
-{
- ///
- /// This class is used to simplify serialization/deserialization operations.
- /// Uses .NET binary serialization.
- ///
- public static class BinarySerializationHelper
- {
- ///
- /// Serializes an object and returns as a byte array.
- ///
- /// object to be serialized
- /// bytes of object
- public static byte[] Serialize(object obj)
- {
- using (var memoryStream = new MemoryStream())
- {
- Serialize(obj, memoryStream);
- return memoryStream.ToArray();
- }
- }
-
- ///
- /// Serializes an object into a stream.
- ///
- /// object to be serialized
- /// Stream to serialize in
- /// bytes of object
- public static void Serialize(object obj, Stream stream)
- {
- CreateBinaryFormatter().Serialize(stream, obj);
- }
-
- ///
- /// Deserializes an object from given byte array.
- ///
- /// The byte array that contains object
- /// deserialized object
- public static object Deserialize(byte[] bytes)
- {
- using (var memoryStream = new MemoryStream(bytes))
- {
- return Deserialize(memoryStream);
- }
- }
-
- ///
- /// Deserializes an object from given stream.
- ///
- /// The stream that contains object
- /// deserialized object
- public static object Deserialize(Stream stream)
- {
- return CreateBinaryFormatter().Deserialize(stream);
- }
-
- ///
- /// Deserializes an object from given byte array.
- /// Difference from is that; this method can also deserialize
- /// types that are defined in dynamically loaded assemblies (like PlugIns).
- ///
- /// The byte array that contains object
- /// deserialized object
- public static object DeserializeExtended(byte[] bytes)
- {
- using (var memoryStream = new MemoryStream(bytes))
- {
- return CreateBinaryFormatter(true).Deserialize(memoryStream);
- }
- }
-
- ///
- /// Deserializes an object from given stream.
- /// Difference from is that; this method can also deserialize
- /// types that are defined in dynamically loaded assemblies (like PlugIns).
- ///
- /// The stream that contains object
- /// deserialized object
- public static object DeserializeExtended(Stream stream)
- {
- return CreateBinaryFormatter(true).Deserialize(stream);
- }
-
- private static BinaryFormatter CreateBinaryFormatter(bool extended = false)
- {
- if (extended)
- {
- return new BinaryFormatter
- {
- //TODO: AssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple,
- Binder = new ExtendedSerializationBinder()
- };
- }
- else
- {
- return new BinaryFormatter();
- }
- }
-
- ///
- /// This class is used in deserializing to allow deserializing objects that are defined
- /// in assemlies that are load in runtime (like PlugIns).
- ///
- private sealed class ExtendedSerializationBinder : SerializationBinder
- {
- public override Type BindToType(string assemblyName, string typeName)
- {
- var toAssemblyName = assemblyName.Split(',')[0];
- foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
- {
- if (assembly.FullName.Split(',')[0] == toAssemblyName)
- {
- return assembly.GetType(typeName);
- }
- }
-
- return Type.GetType(string.Format("{0}, {1}", typeName, assemblyName));
- }
- }
- }
-}
diff --git a/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/DefaultObjectSerializer.cs b/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/DefaultObjectSerializer.cs
index 009fab9fb2..f016fe9773 100644
--- a/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/DefaultObjectSerializer.cs
+++ b/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/DefaultObjectSerializer.cs
@@ -1,8 +1,8 @@
using System;
+using System.Text.Json;
using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.DependencyInjection;
-using Volo.Abp.Serialization.Binary;
namespace Volo.Abp.Serialization
{
@@ -58,12 +58,12 @@ namespace Volo.Abp.Serialization
protected virtual byte[] AutoSerialize(T obj)
{
- return BinarySerializationHelper.Serialize(obj);
+ return JsonSerializer.SerializeToUtf8Bytes(obj);
}
protected virtual T AutoDeserialize(byte[] bytes)
{
- return (T) BinarySerializationHelper.DeserializeExtended(bytes);
+ return JsonSerializer.Deserialize(bytes);
}
}
-}
\ No newline at end of file
+}
diff --git a/framework/test/Volo.Abp.Serialization.Tests/Volo/Abp/Serialization/Objects/CarSerializer.cs b/framework/test/Volo.Abp.Serialization.Tests/Volo/Abp/Serialization/Objects/CarSerializer.cs
index 4c09a3ca93..f99cc9e1f9 100644
--- a/framework/test/Volo.Abp.Serialization.Tests/Volo/Abp/Serialization/Objects/CarSerializer.cs
+++ b/framework/test/Volo.Abp.Serialization.Tests/Volo/Abp/Serialization/Objects/CarSerializer.cs
@@ -1,5 +1,6 @@
-using Volo.Abp.DependencyInjection;
-using Volo.Abp.Serialization.Binary;
+using System.Text.Json;
+using Volo.Abp.DependencyInjection;
+
namespace Volo.Abp.Serialization.Objects
{
@@ -8,14 +9,14 @@ namespace Volo.Abp.Serialization.Objects
public byte[] Serialize(Car obj)
{
obj.Name += "-serialized";
- return BinarySerializationHelper.Serialize(obj);
+ return JsonSerializer.SerializeToUtf8Bytes(obj);
}
public Car Deserialize(byte[] bytes)
{
- var car = (Car)BinarySerializationHelper.DeserializeExtended(bytes);
+ var car = JsonSerializer.Deserialize(bytes);
car.Name += "-deserialized";
return car;
}
}
-}
\ No newline at end of file
+}