У меня есть список пар ключ / значение, которые я хотел бы сохранить и извлечь из файла 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", которое я хотел бы иметь?