コード例 #1
0
        public void Deserialize(Stream inStream, long length)
        {
            AowSerializer <AowImage> serializer = new AowSerializer <AowImage>(hasRootWrapper: false, forceClassID: true);

            ImageInfo = serializer.Deserialize(inStream, inStream.Position, length);
            ImageData = new BinaryReader(inStream).ReadBytes(ImageInfo.DataLength);
        }
コード例 #2
0
        public void Serialize(Stream outStream)
        {
            AowSerializer <AowImage> serializer = new AowSerializer <AowImage>(hasRootWrapper: false, forceClassID: true);

            serializer.Serialize(outStream, ImageInfo);
            outStream.Write(ImageData, 0, ImageData.Length);
        }
コード例 #3
0
        public static ImageLibrary FromStream(Stream inStream)
        {
            AowSerializer <ImageLibrary> serializer = new AowSerializer <ImageLibrary>();
            ImageLibrary ilb = serializer.Deserialize(inStream);

            ilb.DataStream = new MemoryStream();
            inStream.CopyTo(ilb.DataStream);

            return(ilb);
        }
コード例 #4
0
        public void SaveDataSectionRoundTrips(byte[] saveBytes)
        {
            MemoryStream compressedSaveStream = new MemoryStream(saveBytes);

            byte[] originalDataBytes = MapFormatHelper.ReadPreHeaderAndDecompressDataStream(compressedSaveStream).dataStream.ToArray();

            AowMap                 deserializedMap        = AowMap.FromBytes(saveBytes);
            MemoryStream           roundTrippedDataStream = new MemoryStream();
            AowSerializer <AowMap> mapSerializer          = new AowSerializer <AowMap>(hasRootWrapper: true);

            mapSerializer.Serialize(roundTrippedDataStream, deserializedMap);
            byte[] roundTrippedDataBytes = roundTrippedDataStream.ToArray();

            try
            {
                roundTrippedDataBytes.Should().BeEquivalentTo(originalDataBytes);
            }
            catch
            {
                MapStructureLogger originalLogger = new MapStructureLogger();
                _ = mapSerializer.Deserialize(new MemoryStream(originalDataBytes), originalLogger);

                MapStructureLogger roundTrippedLogger = new MapStructureLogger();
                _ = mapSerializer.Deserialize(new MemoryStream(roundTrippedDataBytes), roundTrippedLogger);

                roundTrippedLogger.RootNode.Should().BeEquivalentTo
                (
                    originalLogger.RootNode,
                    cfg
                    => cfg
                    .WithStrictOrdering()
                    .Excluding((IMemberInfo m) => m.SelectedMemberInfo.Name == nameof(MapStructureLogger.Node.Parent))
                    .AllowingInfiniteRecursion()
                );
                throw;
            }
        }