/// <summary>
        /// Encode string
        /// </summary>
        /// <param name="codec"></param>
        /// <param name="contentType"></param>
        /// <param name="writer"></param>
        /// <param name="encoding"></param>
        /// <returns></returns>
        public static string Encode(this ITypeSerializer codec,
                                    string contentType, Action <IEncoder> writer, Encoding encoding)
        {
            var result = codec.Encode(contentType, writer);

            if (result != null)
            {
                return((encoding ?? Encoding.UTF8).GetString(result));
            }
            return(null);
        }