Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        private static FormDataCollection SerializeDictionary(IDictionary dict)
        {
            FormDataCollection collection = new FormDataCollection();

            foreach (DictionaryEntry de in dict)
            {
                collection.Add(de.Key.ToString(), de.Value);
            }

            return(collection);
        }