private void TypeConvertAndLoad(object obj, XmlConfiguration config) { TypeConvertAndLoad(obj, (property, targetType, typeConverter) => { var text = getValue(config, property); if (string.IsNullOrEmpty(text)) { return; } var value = typeConverter.ConvertFromString(text); property.SetValue(obj, value, null); }, (strList, index, property) => { var key = config.AppSettings.Settings.AllKeys.FirstOrDefault( k => k == property.Name + string.Format("[{0}]", index)); if (!string.IsNullOrEmpty(key)) { strList.Add(config.AppSettings.Settings[key].Value); } }); }
private void TypeConvertAndSave(object obj, XmlConfiguration config) { TypeConvertAndSave(obj, (property, valueType, typeConverter) => { config.AppSettings.Settings.Remove(property.Name); config.AppSettings.Settings.Add(property.Name, typeConverter.ConvertToString(null, null, property.GetValue(obj, null))); }, (array, property, typeConverter) => { config.AppSettings.Settings.RemoveSimilar(property.Name); for (int i = 0; i < array.Length; i++) { if (typeConverter.CanConvertTo(typeof(string))) { config.AppSettings.Settings.Add( property.Name + string.Format("[{0}]", i), typeConverter.ConvertToString(null, null, array.GetValue(i))); } } }, config.Save ); }
public XmlAppSettingsSection(XmlConfiguration ownerDocument, XmlElement xmlElement) { OriginalXmlElement = xmlElement; OwnerDocument = ownerDocument; }
private static string getValue(XmlConfiguration config, PropertyInfo property) { var element = config.AppSettings.Settings[property.Name]; return(element == null ? string.Empty : element.Value); }