public override void Write(BinaryWriter file) { file.Write(Variant.typeId); byte[] buffer = System.Array.Empty <byte>(); using (var ms = new MemoryStream()) using (var bw = new BinaryWriter(ms)) { Variant.Write(bw); buffer = ms.ToArray(); } file.Write(buffer.Length + 4); file.Write(buffer); //var pos = file.BaseStream.Position; //file.Write((uint) 0); // size placeholder //Variant.Write(file); //var endpos = file.BaseStream.Position; //file.Seek((int) pos, SeekOrigin.Begin); //var actualsize = (uint) (endpos - pos); //file.Write(actualsize); // Write size //file.Seek((int) endpos, SeekOrigin.Begin); }
public override void Write(BinaryWriter file) { base.Write(file); if (packedObject != null) { packedObject.Write(file); } }
public override void Write(BinaryWriter file) { file.Write(var.typeId); var pos = file.BaseStream.Position; file.Write((uint)0); // size placeholder var.Write(file); var endpos = file.BaseStream.Position; file.Seek((int)pos, SeekOrigin.Begin); var actualsize = (uint)(endpos - pos); file.Write(actualsize); // Write size file.Seek((int)endpos, SeekOrigin.Begin); }