Browse Source

Fix to binary serialisation of object[].

Kenric Nugteren 2 năm trước cách đây
mục cha
commit
c865688512
2 tập tin đã thay đổi với 5 bổ sung21 xóa
  1. 2 2
      InABox.Core/Filter.cs
  2. 3 19
      InABox.Core/Serialization.cs

+ 2 - 2
InABox.Core/Filter.cs

@@ -1074,7 +1074,7 @@ namespace InABox.Core
                 // it also will be followed by another ValueType.
                 var elementType = type.GetElementType();
 
-                if(elementType == typeof(object) && writer.Settings.HandleFilterObjectArrays)
+                if(elementType == typeof(object))
                 {
                     valueType = ValueType.ObjectArray;
                 }
@@ -1160,7 +1160,7 @@ namespace InABox.Core
             if (value is null)
             {
             }
-            else if(value is object[] objArr && writer.Settings.HandleFilterObjectArrays)
+            else if(value is object[] objArr)
             {
                 writer.Write(objArr.Length);
                 foreach (var item in objArr)

+ 3 - 19
InABox.Core/Serialization.cs

@@ -267,37 +267,21 @@ namespace InABox.Core
         public bool IncludeNullables { get; set; }
         public string Version { get; set; }
 
-        /// <summary>
-        /// Handle correctly arrays of <see cref="object"/> inside of <see cref="Filter{T}.Value"/>.
-        /// </summary>
-        /// <remarks>
-        /// True in all serialisation versions >= 1.2.
-        /// </remarks>
-        public bool HandleFilterObjectArrays { get; set; }
-
-        public static BinarySerializationSettings Latest => V1_2;
+        public static BinarySerializationSettings Latest => V1_1;
 
         public static BinarySerializationSettings V1_0 = new BinarySerializationSettings("1.0")
         {
-            IncludeNullables = false,
-            HandleFilterObjectArrays = false
+            IncludeNullables = false
         };
         public static BinarySerializationSettings V1_1 = new BinarySerializationSettings("1.1")
         {
-            IncludeNullables = true,
-            HandleFilterObjectArrays = false
-        };
-        public static BinarySerializationSettings V1_2 = new BinarySerializationSettings("1.2")
-        {
-            IncludeNullables = true,
-            HandleFilterObjectArrays = true
+            IncludeNullables = true
         };
 
         public static BinarySerializationSettings ConvertVersionString(string version) => version switch
         {
             "1.0" => V1_0,
             "1.1" => V1_1,
-            "1.2" => V1_2,
             _ => V1_0
         };