Пример #1
0
        public static byte[] Serialize <T>(Marshaller <T> marshaller, T message)
        {
            var serializationContext = new ByteArraySerializationContext();

            marshaller.ContextualSerializer(message, serializationContext);
            return(serializationContext.SerializedData);
        }
Пример #2
0
        public static byte[] SerializeValue <T>(Marshaller <T> marshaller, T value)
        {
            byte[] payload;
            using (var serializationContext = new DefaultSerializationContext())
            {
                marshaller.ContextualSerializer(value, serializationContext);
                payload = serializationContext.GetContent();
            }

            return(payload);
        }
        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)));
        }
Пример #4
0
        private static Metadata SerializeHeader <T>(Marshaller <T> marshaller, string headerName, T headerValue)
        {
            byte[] payload;
            using (var serializationContext = new DefaultSerializationContext())
            {
                marshaller.ContextualSerializer(headerValue, serializationContext);
                payload = serializationContext.GetContent();
            }

            return(new Metadata
            {
                { headerName, payload }
            });
        }
Пример #5
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));
        }
Пример #6
0
 public void StreamSerializer()
 {
     _asStreamMarshaller.ContextualSerializer(_payload, _serializationContext);
 }
Пример #7
0
 public void DefaultSerializer()
 {
     _defaultMarshaller.ContextualSerializer(_payload, _serializationContext);
 }