/// <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); }