Exemplo n.º 1
0
        public static T Deserialize <T>(byte[] buffer, int index, int count)
            where T : IMessage, new()
        {
            var stream = new ProtoInputStream(buffer, index, count);
            var result = new T();

            result.ReadFrom(stream);
            return(result);
        }
Exemplo n.º 2
0
        public static object Deserialize(Type messageType, Stream stream)
        {
            if (!typeof(IMessage).IsAssignableFrom(messageType))
            {
                throw new ArgumentException("Type " + messageType + " is not IMessage");
            }
            var instance = (IMessage)messageType.CreateInstance();

            using (var pooled = stream.ToBuffer())
            {
                var buf   = pooled.Item;
                var input = new ProtoInputStream(buf.Buffer, buf.Offset, buf.Count);
                instance.ReadFrom(input);
                return(instance);
            }
        }