private static string serialize(IDictionary<string, object> source) { NameValueCollection query = new FormDataCollection(string.Empty).ReadAsNameValueCollection(); foreach (KeyValuePair<string, object> pair in source) { if (pair.Value == null) continue; // The string implements IEnumerable, but must be interpreted as an entire object and not as // an array of characters. IEnumerable enumerable = pair.Value is string ? null : pair.Value as IEnumerable; if (enumerable == null) { query.Add(pair.Key, Convert.ToString(pair.Value)); } else { foreach (object item in enumerable) { query.Add(pair.Key, Convert.ToString(item)); } } } return query.ToString(); }
private static FormDataCollection SerializeObject(object obj) { FormDataCollection collection = new FormDataCollection(); PropertyInfo[] properties = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (PropertyInfo p in properties) { object value = p.FastGetValue(obj); if (value == null) { collection.Add(p.Name, string.Empty); continue; } if (value.GetType() == typeof(string[])) { foreach (string s in (string[])value) { collection.Add(p.Name, (s ?? string.Empty)); } } else { collection.Add(p.Name, value); } } return(collection); }
private FormDataCollection StringToFormDataCollection(string firebugCopyText) { // 将 FireBug中复制的文本,转变成提交数据 string[] lines = firebugCopyText.SplitTrim('\r', '\n'); //if( lines.Length == 0 || lines.Length % 2 != 0 ) // throw new ArgumentException("无效的输入数据:firebugCopyText"); FormDataCollection collection = new FormDataCollection(); foreach (string line in lines) { string[] nn = line.SplitTrim('='); if (nn.Length == 2 && nn[1].Length > 0) { collection.Add(nn[0], nn[1]); } else { collection.Add(nn[0], string.Empty); } } return(collection); }
private static FormDataCollection SerializeDictionary(IDictionary dict) { FormDataCollection collection = new FormDataCollection(); foreach (DictionaryEntry de in dict) { collection.Add(de.Key.ToString(), de.Value); } return(collection); }