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))); }
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 static T Deserialize <T>(Marshaller <T> marshaller, byte[] payload) { var deserializationContext = new ByteArrayDeserializationContext(payload); return(marshaller.ContextualDeserializer(deserializationContext)); }
public void StreamDeserializer() { _asStreamMarshaller.ContextualDeserializer(_deserializationContext); }
public void DefaultDeserializer() { _defaultMarshaller.ContextualDeserializer(_deserializationContext); }
public static T DeserializeValue <T>(Marshaller <T> marshaller, byte[] payload) { return(marshaller.ContextualDeserializer(new DefaultDeserializationContext(payload))); }