/// <summary>
        /// Serializes the request.
        /// </summary>
        /// <typeparam name="TService">The type of the service.</typeparam>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public byte[] SerializeRequest <TService>(Request request)
        {
            var methodKey = ContractParser <TService> .GetMethodKey(request.Method);

            JObject message = new JObject();

            message[methodKey] = new JObject();
            for (int i = 0; i < request.Args.Count; i++)
            {
                message[methodKey][i.ToString()] = JToken.FromObject(request.Args[i]);
            }

            return(Encoding.UTF8.GetBytes(message.ToString()));
        }