dea*_*dog 17 .net settings maui
在 Windows 窗体和 WPF 应用程序中,我们可以使用设置设计器文件来保存用户特定的设置。该文档仅提到 .Net Framework(例如 1 - 4),而不是 .Net Core 或 .Net(例如 5+)。我已经确认 .settings 格式和设计器仍然可以在使用 Visual Studio 2022 的 Windows 上的 .Net 6 WPF 中工作。
我的问题是,文件格式和设计器仍然是.Net MAUI.settings应用程序的推荐方法吗?它可以在所有平台(Windows、macOS、移动设备)上运行吗?如果没有,建议的方法是简单地编写自己的自定义文件来保存用户设置,如果是,该文件应该写入哪里?/ , 或者别的地方?Environment.SpecialFolder.ApplicationDataEnvironment.SpecialFolder.LocalApplicationData
Ger*_*uis 18
这一切都取决于您的要求。这没有灵丹妙药。
我必须承认我并不真正了解您提到的设置(设计器)文件。我可以说,这在 Xamarin 或 .NET MAUI 中不是一回事(据我所知)。可能也是因为移动应用程序中存在沙箱的概念,而桌面应用程序中则较少。所以保存东西的位置就显得比较重要了。
评论中已经有一些很好的建议可以帮助您入门。如果您的要求只是保存简单类型(字符串、布尔、整数等),那么Essentials Preferences API应该可以正常工作。我认为在幕后只是序列化为 json 文件并将其存储在某个地方。Essentials 此时确实已经成为 .NET MAUI 的一部分。
Xamarin.Forms曾经有自己的Properties,我认为这是.NET应用程序中更常见的概念,但我认为Essentials方式更好。
如果您想保存更复杂的内容,您可能需要考虑使用本地数据库(例如 SQLite),或者直接推出自己的数据库并序列化您的设置并将其保存在某个地方,最好使用Essentials FileSystem Helpers。
这里需要注意的一件事是这些库的价值所在,即保存设置的位置。您是否希望将设置备份到云服务,以便重新安装应用程序后仍能正常运行?或者甚至在新手机上安装相同的应用程序?或者您只是想重置整个状态而不关心它。
如果你明白了这一点,剩下的就看你的了!希望这可以帮助。
gur*_*nm3 13
经过一番努力寻找正确的答案后,我能够使用首选项来真正轻松地获取/设置用户设置,而不必担心自己保存和加载。
// getter
var value = Preferences.Get("nameOfSetting", "defaultValueForSetting");
// setter
Preferences.Set("nameOfSetting", value);
Run Code Online (Sandbox Code Playgroud)
我将我的包裹在一个属性中,这样更容易使用:
public string FilePath
{
get { return Preferences.Get(nameof(FilePath), ""); }
set { Preferences.Set(nameof(FilePath), value); }
}
Run Code Online (Sandbox Code Playgroud)
这不是必需的,但我使用它nameof而不是键入文字字符串,因为我觉得它比使用随机字符串作为密钥“更安全”,并希望我记住它。这样做的缺点是,如果您更改属性名称,它会更改密钥,因此请记住这一点。