【发布时间】:2019-11-12 19:30:20
【问题描述】:
为使用 .NET 5、.NET 6 或 .Net Core >=3.0 的 WPF 应用程序保留用户设置的首选方法是什么?
创建 WPF .Net Core 3.0 项目(VS2019 V16.3.1) 现在我看到不再有 Properties.Settings 部分了。
在线搜索后,开始深入Microsoft.Extensions.Configuration。
除了访问设置的臃肿代码之外,现在更糟 -> 没有保存?
User Configuration Settings in .NET Core
幸运或不幸的是 Microsoft.Extensions.Configuration 不支持按设计保存。在这个 Github 问题中阅读更多内容Why there is no save in ConfigurationProvider?
使用 .Net Core >=3.0 为 WPF 应用程序持久化用户设置的首选(简单/快速/简单)方式是什么?
之前`
【问题讨论】:
-
我很好奇,是什么导致你想要在运行时改变你的配置文件?是什么促成了这些变化?您是否尝试将您的配置用作某种用户配置文件?
-
我说的是提高用户便利性的设置。在我上面的例子中,它看起来像是应用程序设置,但我喜欢允许用户选择他们的语言。为什么我要强制我的用户编辑配置文件?为什么不应该提供一个管理区域来让它配置?为什么不应该像How To: Write User Settings at Run Time with C# 那样做呢?我已经成功使用/保存这些用户设置大约 15 年了。我们应该回到注册表吗?回归本源?
-
我现在没有“答案”。但我希望有某种配置抽象可以写入 LocalApplicationData、ApplicationData 或 CommonApplicationData,具体取决于用户设置的范围。我希望这种抽象会禁止您更改应用程序的应用程序级别配置(出于多种原因,包括您的权限级别可能不足)。这是我对 Microsoft 的客户端应用程序配置代码的期望。您链接的文档是asp.net文档,完全不同。
-
我认为 Microsoft.Extensions.Configuration 甚至适用于 WPF/WinForms .Net Core,而不仅仅是 ASP.Net。我还没有找到任何其他信息。
-
我也有类似的挫败感。最后我只是选择了 JSON.net。超级简单
标签: c# wpf .net-core .net-5 .net-6.0