예제 #1
0
 public static object DeserializeObject(byte[] buf, Type type, SerializerSettings settings)
 {
     using (MemoryStream ms = new MemoryStream(buf))
     {
         using (BinaryTypesReader br = new BinaryTypesReader(ms))
         {
             return(DeserializeObject(br, type, settings, null, null));
         }
     }
 }
예제 #2
0
        //===============================================================================================
        // Serialize
        //===============================================================================================

        public static byte[] SerializeObject <T>(T value, SerializerSettings settings)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                using (BinaryTypesWriter bw = new BinaryTypesWriter(ms))
                {
                    SerializeObject(typeof(T), value, bw, settings, null, null);
                    return(ms.ToArray());
                }
            }
        }
예제 #3
0
        internal static object DeserializeObject(BinaryTypesReader br, Type type, SerializerSettings settings, ISerializer serializer, ISerializerArg serializerArg)
        {
            serializer = GetSerializer(type, serializer);
            if (serializer == null)
            {
                throw new Exception($"SerializeObject: serializer not found for type {type.FullName}");
            }

            if (type.IsClass && serializer.CommonNullHandle)
            {
                if (br.ReadBoolean() == false) //null
                {
                    return(null);
                }
            }

            return(serializer.Deserialize(br, type, settings, serializerArg));
        }
예제 #4
0
        //===============================================================================================
        // Deserialize
        //===============================================================================================


        public static T DeserializeObject <T>(byte[] buf, SerializerSettings settings)
        {
            return((T)DeserializeObject(buf, typeof(T), settings));
        }
예제 #5
0
        internal static void SerializeObject <T>(Type type, T value, BinaryTypesWriter bw, SerializerSettings settings, ISerializer serializer, ISerializerArg serializerArg)
        {
            serializer = GetSerializer(type, serializer);
            if (serializer == null)
            {
                throw new Exception($"SerializeObject: serializer not found for type {type.FullName}");
            }

            if (type.IsClass && serializer.CommonNullHandle)
            {
                bw.Write(value != null);
                if (value == null)
                {
                    return;
                }
            }

            serializer.Serialize(bw, type, settings, serializerArg, value);
        }
예제 #6
0
 public static T DeserializeObject <T>(byte[] buf, SerializerSettings settings = null)
 {
     return(Serializer.DeserializeObject <T>(buf, settings));
 }
예제 #7
0
 public static byte[] SerializeObject <T>(T value, SerializerSettings settings = null)
 {
     return(Serializer.SerializeObject(value, settings));
 }
예제 #8
0
 public static object DeserializeObject(Type type, byte[] buf, SerializerSettings settings = null)
 {
     return(Serializer.DeserializeObject(buf, type, settings));
 }