Example #1
0
        public void Serialize(Object obj, Stream stream)
        {
            if (!obj is GameObject)
            {
                throw new NotImplementedException("Can't serialize anything other than GameObject heiarchies");
            }

            using (var ms = new MemoryStream())
            {
                var writer = new BinaryWriter(ms);
                try
                {
                    writer.Write(Iso8859.GetBytes(FileHeader));
                    writer.Write(Version);

                    _serializer.Serialize(obj, writer);
                }
                finally
                {
                    //do not close the writer as it closes ms.
                    writer.Flush();
                }

                ms.Position = 0;
                //write memory to stream
                var buffer = new byte[32 * 1024];
                int bytesRead;
                while ((bytesRead = ms.Read(buffer, 0, buffer.Length)) > 0)
                {
                    stream.Write(buffer, 0, bytesRead);
                }
            }
        }