У меня есть список пар ключ/значение, которые я хотел бы хранить и извлекать из файла XML. Таким образом, эта задача аналогична описанной здесь. Я стараюсь следовать рекомендациям в отмеченном ответе (используя KeyValuePair и XmlSerializer), но я не получаю его работу.
То, что я до сих пор представляет собой класс "Настройки"...
public class Settings
{
public int simpleValue;
public List<KeyValuePair<string, int>> list;
}
... экземпляр этого класса...
Settings aSettings = new Settings();
aSettings.simpleValue = 2;
aSettings.list = new List<KeyValuePair<string, int>>();
aSettings.list.Add(new KeyValuePair<string, int>("m1", 1));
aSettings.list.Add(new KeyValuePair<string, int>("m2", 2));
... и следующий код для записи этого экземпляра в файл XML:
XmlSerializer serializer = new XmlSerializer(typeof(Settings));
TextWriter writer = new StreamWriter("c:\\testfile.xml");
serializer.Serialize(writer, aSettings);
writer.Close();
Результирующий файл:
<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<simpleValue>2</simpleValue>
<list>
<KeyValuePairOfStringInt32 />
<KeyValuePairOfStringInt32 />
</list>
</Settings>
Таким образом, ни ключ, ни значение пар в моем списке не сохраняются, хотя количество элементов верное. Очевидно, я делаю что-то в основном неправильно. Мои вопросы:
- Как сохранить пары ключ/значение списка в файле?
- Как я могу изменить созданное по умолчанию имя "KeyValuePairOfStringInt32" из элементов в списке на другое имя, например "listElement", которое я хотел бы иметь?