public void Load(TextReader reader) { Clear(); string line; while ((line = reader.ReadLine()) != null) { if (IsSettingLine(line)) { int offset = 0; string nameString = ParseName(line, ref offset); string valueString = ParseValue(line, ref offset); string typeString = ParseType(line, ref offset); string idString = ParseID(line, ref offset); nameString = (nameString!=null) ? (Unescape(nameString)) : (null); valueString = (valueString!=null) ? (Unescape(valueString)) : (null); typeString = (typeString!=null) ? (Unescape(typeString)) : (null); idString = (idString!=null) ? (Unescape(idString)) : (null); string name = nameString; Type type; if (string.IsNullOrEmpty(typeString)) { type = typeof(string); } else { type = FindType(typeString); if (type == null) { throw new FormatException(); } } object value = ConvertFromString(valueString, type); Uri id; if (idString != null) { id = new Uri(idString, UriKind.Absolute); } else { id = GenerateUniqueID(); } SettingsItemInfo info = new SettingsItemInfo(id, name, type, value); Add(info); } } }
public virtual void Load(XmlReader reader) { Clear(); AtomFeed feed = _settingsReader.ReadFeed(reader); foreach (SettingsEntry entry in feed.Entries) { string name = entry.Title.Text; string valueString = entry.Content.Text; Type type = entry.Type; if (type == null) { type = typeof(string); } object value = ConvertFromString(valueString, type); Uri id = entry.ID; SettingsItemInfo info = new SettingsItemInfo(id, name, type, value); Add(info); } }