Я лично использую Newtonsoft JSON для сохранения своих пользовательских данных. Вы можете построить все свои классы как обычно, а затем довольно легко интегрировать сериализатор / десериализатор JSON без особых хлопот. Будут некоторые исключения, для которых может потребоваться настраиваемый сериализатор, но их не так сложно сделать, особенно если вам нужно интерпретировать только одну небольшую часть, а затем просто передать оставшуюся часть файла сериализатору по умолчанию.
Это очень быстрый пример того, как вы можете сохранить некоторые настройки значения ключа для ряда пользователей в файле.
using Newtonsoft.Json;
[JsonObject]
public class UserData {
[JsonProperty] //Add a JSON property "Username" which is a string
public string Username { get; set; }
//IEnumerable types are converted to/from arrays automatically by Newtonsoft
[JsonProperty("Options")] //Set the name in JSON file to "Options"
public Dictionary<string, string> Preferences { get; set; }
[JsonIgnore] //Excludes this property from the JSON output
public bool SaveRequired { get; set; } //Set true when a change is made, set false when saved
}
Существуют очень похожие библиотеки, подобные этой, которые делают то же самое для XML, но мне не особо повезло с их выяснением, и я обычно нахожусь в очень сжатые сроки, когда мне просто нужно что-то, что, как я знаю, работает ,
Если вы можете найти приличную библиотеку XML и понять, как правильно ее использовать, я бы рекомендовал XML поверх JSON из-за ее строго структурированной природы, и вы можете включить версии схемы и помочь с интеграцией в другие системы, предоставив хорошо написанную схему.