/// <summary>
        /// 往集合中添加一个键值对(允许key重复)
        /// </summary>
        /// <param name="key">数据项的名称</param>
        /// <param name="value">数据值</param>
        public FormDataCollection AddObject(string key, object value)
        {
            if (string.IsNullOrEmpty(key))
            {
                throw new ArgumentNullException("key");
            }

            // 除了上传文件之外,其它数据都转换成字符串。

            if (value == null)
            {
                return(AddString(key, string.Empty));
            }

            Type valueType = value.GetType();

            if (valueType == typeof(string))
            {
                return(AddString(key, (string)value));
            }


            if (valueType == typeof(FileInfo))
            {
                // -----------------------------------------------
                HasFile = true;                                 // 标记包含上传文件
                // -----------------------------------------------
                HttpFile httFile = HttpFile.CreateFromFileInfo((FileInfo)value);
                _list.Add(new KeyValuePair <string, object>(key, httFile));
                return(this);
            }

            if (valueType == typeof(HttpFile))
            {
                // -----------------------------------------------
                HasFile = true;                                 // 标记包含上传文件
                // -----------------------------------------------
                _list.Add(new KeyValuePair <string, object>(key, value));
                return(this);
            }

            if (valueType == typeof(byte[]))
            {
                string text = Convert.ToBase64String((byte[])value);
                return(AddString(key, text));
            }

            // string[] ,不处理,可以通过给 Data 设置来解决(用一个KEY多次指定值)。

            _list.Add(new KeyValuePair <string, object>(key, value.ToString()));
            return(this);
        }