Пример #1
0
        private static T DeserializeHeader <T>(Marshaller <T> marshaller, Metadata?headers, string headerName)
        {
            var header = headers.FindHeader(headerName, true);

            if (header == null)
            {
                throw new InvalidOperationException("Fail to resolve header parameters, {0} header not found.".FormatWith(headerName));
            }

            return(marshaller.ContextualDeserializer(new DefaultDeserializationContext(header.ValueBytes)));
        }
        private static T ContextualClone <T>(T value, Marshaller <T> marshaller)
        {
            byte[] content;
            using (var serializationContext = new DefaultSerializationContext())
            {
                marshaller.ContextualSerializer(value, serializationContext);
                content = serializationContext.GetContent();
            }

            Console.WriteLine("Size: {0}", content.Length);
            return(marshaller.ContextualDeserializer(new DefaultDeserializationContext(content)));
        }
Пример #3
0
        public void ContextualSerializerEmulation()
        {
            Func <string, byte[]> simpleSerializer   = System.Text.Encoding.UTF8.GetBytes;
            Func <byte[], string> simpleDeserializer = System.Text.Encoding.UTF8.GetString;
            var marshaller = new Marshaller <string>(simpleSerializer,
                                                     simpleDeserializer);

            Assert.AreSame(simpleSerializer, marshaller.Serializer);
            Assert.AreSame(simpleDeserializer, marshaller.Deserializer);

            // test that emulated contextual serializer and deserializer work
            string origMsg = "abc";
            var    serializationContext = new FakeSerializationContext();

            marshaller.ContextualSerializer(origMsg, serializationContext);

            var deserializationContext = new FakeDeserializationContext(serializationContext.Payload);

            Assert.AreEqual(origMsg, marshaller.ContextualDeserializer(deserializationContext));
        }
Пример #4
0
        public static T Deserialize <T>(Marshaller <T> marshaller, byte[] payload)
        {
            var deserializationContext = new ByteArrayDeserializationContext(payload);

            return(marshaller.ContextualDeserializer(deserializationContext));
        }
Пример #5
0
 public void StreamDeserializer()
 {
     _asStreamMarshaller.ContextualDeserializer(_deserializationContext);
 }
Пример #6
0
 public void DefaultDeserializer()
 {
     _defaultMarshaller.ContextualDeserializer(_deserializationContext);
 }
Пример #7
0
 public static T DeserializeValue <T>(Marshaller <T> marshaller, byte[] payload)
 {
     return(marshaller.ContextualDeserializer(new DefaultDeserializationContext(payload)));
 }