Exemplo n.º 1
0
 public override T Deserialize <T>(byte[] bytes)
 {
     using (var compressedStream = new MemoryStream(bytes))
         using (var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress))
             using (var resultStream = new MemoryStream())
             {
                 zipStream.CopyTo(resultStream);
                 resultStream.Position = 0;
                 return((T)ProtobufModel.Deserialize(resultStream, null, typeof(T)));
             }
 }
Exemplo n.º 2
0
 public override byte[] Serialize <T>(T obj)
 {
     using (var serializedStream = new MemoryStream())
         using (var compressedStream = new MemoryStream())
             using (var zipStream = new GZipStream(compressedStream, CompressionMode.Compress))
             {
                 ProtobufModel.Serialize(serializedStream, obj);
                 serializedStream.Position = 0;
                 serializedStream.CopyTo(zipStream);
                 zipStream.Close();
                 return(compressedStream.ToArray());
             }
 }
Exemplo n.º 3
0
        public void Message_Value_Test()
        {
            ProtobufModel model = new ProtobufModel
            {
                IntValue    = 100,
                StringValue = "Hello"
            };

            MemoryStream stream = new MemoryStream();
            {
                //Message.Serialize(stream, model);

                ((IMessage)(Message <ProtobufModel>)model).WriteTo(stream);
                //Message.Serialize(stream, model);

                stream.Position = 0;
                Assert.Equal(stream.Length, ((IMessage)(Message <ProtobufModel>)model).CalculateSize());
                var model2 = new MessageMessage <ProtobufModel>(new ProtobufModel());
                ((IMessage)model2).MergeFrom(stream);

                Assert.Equal(model.IntValue, model2.Source.IntValue);
                Assert.Equal(model.StringValue, model2.Source.StringValue);
            }

            {
                var message = (Message <ProtobufModel>)model;
                stream.Position = 0;
                Message.Serialize(stream, model);

                stream.Position = 0;
                var model2 = Message <ProtobufModel> .Deserialize(stream);

                Assert.Equal(model.IntValue, model2.IntValue);
                Assert.Equal(model.StringValue, model2.StringValue);
            }
        }