示例#1
0
 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;
 }
示例#2
0
        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);
            }
        }