public void CanReadComplexObject( )
        {
            var complex = new ComplexObject {
                Name = "Name", Version = new Version("1.2.3.4"), TypeCode = TypeCode.DBNull
            };

            using var output = new MemoryStream( );
            using var writer = new IO.BinaryWriterWith7BitEncoding(output);

            BinaryFormatWriter.Write(writer, typeof(ComplexObject), complex);

            using var input  = new MemoryStream(output.ToArray( ));
            using var reader = new IO.BinaryReaderWith7BitEncoding(input);

            var deserializedComplex = BinaryFormatReader.Read <ComplexObject> (reader);

            Assert.NotNull(deserializedComplex);
            if (deserializedComplex == null)
            {
                return;
            }

            Assert.Equal(complex.Name, deserializedComplex.Name);
            Assert.Equal(complex.Version, deserializedComplex.Version);
            Assert.Equal(complex.TypeCode, deserializedComplex.TypeCode);
            Assert.Null(deserializedComplex.Parent);
        }
        public void CanReadObjectUsingConverter( )
        {
            var surrogate = new BinaryFormatSurrogate( );

            surrogate.AddConverter(ReadComplexObjectNameOnly, WriteComplexObjectNameOnly);

            var complex = new ComplexObject {
                Name = "Name", Version = new Version("1.2.3.4"), TypeCode = TypeCode.DBNull
            };

            using var output = new MemoryStream( );
            using var writer = new IO.BinaryWriterWith7BitEncoding(output);

            BinaryFormatWriter.Write(writer, typeof(ComplexObject), complex, surrogate);

            using var input  = new MemoryStream(output.ToArray( ));
            using var reader = new IO.BinaryReaderWith7BitEncoding(input);

            var deserializedComplex = BinaryFormatReader.Read <ComplexObject> (reader, surrogate);

            Assert.NotNull(deserializedComplex);
            if (deserializedComplex == null)
            {
                return;
            }

            Assert.Equal(complex.Name, deserializedComplex.Name);
            Assert.Equal(default, deserializedComplex.Version);
Exemplo n.º 3
0
        private static PNode LoadAsBinary(Stream stream)
        {
            var reader = new BinaryFormatReader();

            return(reader.Read(stream));
        }