public static Dictionary<string, StringValues> Parse(TParameters parameters)
 {
     var nvc = QueryHelpers.ParseQuery("");
     var properties = typeof(TParameters).GetProperties();
     foreach (var prop in properties.OrderBy(o => o.Name))
     {
         if (Converters.ContainsKey(prop.PropertyType))
         {
             var o = prop.GetValue(parameters);
             if (o != null)
             {
                 var defaultValue = GetDefaultValue(prop);
                 if (defaultValue == null || o.ToString() != defaultValue.ToString())
                 {
                     Converters[prop.PropertyType](nvc, o, GetParameterName(prop).Camelize());
                 }
             }
         }
     }
     return TypeParsers.Sort(nvc);
 }
        public static NameValueCollection Parse(TParameters parameters)
        {
            var nvc        = HttpUtility.ParseQueryString("");
            var properties = typeof(TParameters).GetProperties();

            foreach (var prop in properties.OrderBy(o => o.Name))
            {
                if (Converters.ContainsKey(prop.PropertyType))
                {
                    var o = prop.GetValue(parameters);
                    if (o != null)
                    {
                        var defaultValue = GetDefaultValue(prop);
                        if (defaultValue == null || o.ToString() != defaultValue.ToString())
                        {
                            Converters[prop.PropertyType](nvc, o, GetParameterName(prop).Camelize());
                        }
                    }
                }
            }
            return(TypeParsers.Sort(nvc));
        }