【发布时间】:2022-11-21 06:29:19
【问题描述】:
我正在用 C# .NET Framework 编写有声读物应用程序。我需要在用户光盘上存储有关有声读物位置和上次收听的有声读物的信息。我正在寻找最简单和最优雅的方法来做到这一点。越简单越好。
最好的(安全和适当的)方法是什么?你会怎么做?
【问题讨论】:
-
你在写什么样的应用程序?桌面应用程序还是网络应用程序?
我正在用 C# .NET Framework 编写有声读物应用程序。我需要在用户光盘上存储有关有声读物位置和上次收听的有声读物的信息。我正在寻找最简单和最优雅的方法来做到这一点。越简单越好。
最好的(安全和适当的)方法是什么?你会怎么做?
【问题讨论】:
一种非常简单的方法是创建一个自定义类,其中包含您希望在会话之间保留的每个设置的属性。然后创建此类的一个实例并使用您想要保留的值设置属性。
最后使用 Json 库序列化实例,将其转换为字符串,并将其保存到您具有读/写权限的位置。
要检索信息,只需执行相反的操作,从文件中读取,将字符串反序列化为设置类的实例,然后使用它。
所以假设这样一个类:
public class ApplicationSettings
{
public string LastBookName { get; set; }
public List<string> PreviousTitles { get; set; }
}
你可以有两个这样的辅助方法(利用 NewtonSoft.Json 库NuGet here)
public void SaveSettings(ApplicationSettings aps)
{
string json = JsonConvert.SerializeObject(aps);
File.WriteAllText(@"E: empsavedsettings.json", json);
}
public ApplicationSettings LoadSettings()
{
string json = File.ReadAllText(@"E: empsavedsettings.json");
return JsonConvert.DeserializeObject<ApplicationSettings>(json);
}
现在您只需在代码的适当位置调用这两个方法。
【讨论】: