public ProtocolBuffersConsumeContext(ReceiveContext receiveContext, ProtocolBuffersMessageEnvelope envelope, long offset) : base(receiveContext) { _envelope = envelope; _offset = offset; _supportedTypes = envelope.MessageType.ToArray(); _messageTypes = new Dictionary <Type, object>(); _objectTypeDeserializer = null; }
public void Serialize <T>(Stream stream, SendContext <T> context) where T : class { try { context.ContentType = ProtocolBuffersContentType; var envelope = new ProtocolBuffersMessageEnvelope(context, TypeMetadataCache <T> .MessageTypeNames); Serializer.SerializeWithLengthPrefix(stream, envelope, PrefixStyle.Fixed32); Serializer.SerializeWithLengthPrefix(stream, context.Message, PrefixStyle.Fixed32); } catch (SerializationException) { throw; } catch (Exception ex) { throw new SerializationException("Failed to serialize message", ex); } }