public static byte[] Serialize <T>(Marshaller <T> marshaller, T message) { var serializationContext = new ByteArraySerializationContext(); marshaller.ContextualSerializer(message, serializationContext); return(serializationContext.SerializedData); }
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))); }
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 } }); }
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)); }
public void StreamSerializer() { _asStreamMarshaller.ContextualSerializer(_payload, _serializationContext); }
public void DefaultSerializer() { _defaultMarshaller.ContextualSerializer(_payload, _serializationContext); }