public void Serialize(ISnapshot baseSnap, ISnapshot snap, Stream stream) { // _binaryWriter = new MyBinaryWriter(stream); _binaryWriter = MyBinaryWriter.Allocate(stream); Reset(); snap.Header.Serialize(_binaryWriter, _version); var baseMap = baseSnap.EntityMap; var currentMap = snap.EntityMap; SnapshotPatchGenerator handler = new SnapshotPatchGenerator(_serializerManager); EntityMapComparator.Diff(baseMap, currentMap, handler, "serialize"); SnapshotPatch patch = handler.Detach(); patch.BaseSnapshotSeq = baseSnap.SnapshotSeq; patch.Serialize(_binaryWriter, _serializerManager); _binaryWriter.ReleaseReference(); patch.ReleaseReference(); }