Пример #1
0
        private static void SerializeValue(BinaryWriter binaryWriter, object value, SerializationMetadata metadata)
        {
            ISerializator ser;

            if (value != null)
            {
                ser = SerializationMap.GetSerializator(value.GetType().GetTypeInfo());
            }
            else
            {
                value = Null;
                ser   = SerializationMap.GetSerializator(NullTypeInfo);
            }


            ser.Serialize(binaryWriter, value, metadata);
        }
Пример #2
0
        // ReSharper disable once MethodOverloadWithOptionalParameter
        internal static object Deserialize(IByteBuffer buffer, SerializationMetadata metadata)
        {
            if (metadata != null)
            {
                ISerializator ser;
                if (buffer.GetUnsignedIntLE(buffer.ReaderIndex) == TgZipPackageId)
                {
                    buffer.SkipBytes(4);
                    ser = SerializationMap.GetSerializator(typeof(TgZipPacked).GetTypeInfo());
                }
                else
                {
                    ser = SerializationMap.GetSerializator(metadata.PropertyTypeInfo);
                }
                return(ser.Deserialize(buffer, metadata));
            }

            return(Deserialize(buffer, typeof(IObject).GetTypeInfo()));
        }
Пример #3
0
        internal static void Serialize(object obj, IByteBuffer buffer, SerializationMetadata metadata = null)
        {
            var ser = SerializationMap.GetSerializator(obj.GetType().GetTypeInfo());

            ser.Serialize(obj, buffer, metadata);
        }