private static void WriteIDictionary(TextWriter writer, IDictionary map, QueryStringTypeSerializerSettings settings) { var serializer = new QueryStringTypeSerializer(settings); var ranOnce = false; foreach (var key in map.Keys) { var dictionaryValue = map[key]; if (dictionaryValue == null) { continue; } if (ranOnce) { writer.Write("&"); } else { ranOnce = true; } WriteValue(serializer, writer, key); writer.Write("="); WriteValue(serializer, writer, dictionaryValue); } }
private static void WriteType(TextWriter writer, object value, QueryStringTypeSerializerSettings settings) { var type = value.GetType(); var props = type.GetSerializableProperties(); var serializer = new QueryStringTypeSerializer(settings); for (var i = 0; i < props.Length; i++) { var pi = props[i]; var pValue = pi.GetValue(value); if (pValue == null) { continue; } if (i > 0) { writer.Write('&'); } writer.Write(GetPropertyName(pi)); writer.Write("="); WriteValue(serializer, writer, pValue); } }