Пример #1
0
        public void Serialize <T>(Stream stream, T portableObject) where T : IPortableObject
        {
            var slotDestination = new SlotDestination();
            var pofWriter       = new PofWriter(context, slotDestination);

            pofWriter.WriteToSlots(portableObject);
            slotDestination.WriteToStream(stream);
        }
Пример #2
0
        public void Serialize <T>(BinaryWriter writer, T portableObject) where T : IPortableObject
        {
            var slotDestination = new SlotDestination();
            var pofWriter       = new PofWriter(context, slotDestination);

            pofWriter.WriteObject(0, portableObject);

            var data = slotDestination[0];

            writer.Write((int)data.Length);
            writer.Write(data);
        }
Пример #3
0
 private void WriteObjectWithoutTypeDescription <T>(BinaryWriter writer, T value)
 {
     if (context.IsReservedType(typeof(T)))
     {
         WriteReservedType(writer, value);
     }
     else
     {
         var slotDestination = new SlotDestination();
         var pofWriter       = new PofWriter(context, slotDestination);
         pofWriter.WriteToSlots((IPortableObject)value);
         slotDestination.WriteToWriter(writer);
     }
 }
Пример #4
0
 private void WriteObjectWithoutTypeDescription(BinaryWriter writer, object value, Type valueType)
 {
     if (context.IsReservedType(valueType))
     {
         WriteReservedType(writer, value, valueType);
     }
     else
     {
         var slotDestination = new SlotDestination();
         var pofWriter       = new PofWriter(context, slotDestination);
         ((IPortableObject)value).Serialize(pofWriter);
         slotDestination.WriteToWriter(writer);
     }
 }
Пример #5
0
        public void Serialize(BinaryWriter writer, object portableObject, SerializationFlags serializationFlags)
        {
            var slotDestination = new SlotDestination();
            var pofWriter       = new PofWriter(context, slotDestination);

            if (serializationFlags.HasFlag(SerializationFlags.Typeless))
            {
                pofWriter.WriteObjectTypeless(0, portableObject);
            }
            else
            {
                pofWriter.WriteObject(0, portableObject);
            }

            var data = slotDestination[0];

            writer.Write((int)data.Length);
            writer.Write(data);
        }