public ParameterValueDictionary(object parameters) { Requires.IsNotNull(parameters, "parameters"); foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(parameters)) { if (RequestDeserializer.IsSerializableProperty(descriptor.PropertyType)) { object paramValue = descriptor.GetValue(parameters); if (paramValue != null) { string value = Conversion.AsString(descriptor.PropertyType, paramValue, CultureInfo.InvariantCulture); this.Add(GetName(descriptor), value); } } } }