【问题标题】:How to add new sections to app config file in C#如何在 C# 中将新部分添加到应用程序配置文件
【发布时间】:2021-10-24 13:35:14
【问题描述】:

我正在使用 Virtual Studio 2017 开发 WPF 应用程序。我希望我的应用程序从服务器获取数据表并将该表保存到应用程序配置文件中。表格的每一行都将是应用程序配置文件中的一个部分。问题是我找不到任何方法来保存这样的数据。

示例:我们可以使用GetSection 方法获取设置部分,但似乎没有像AddSectionSetSection 这样的方法来添加新部分。

我想知道 WPF 是否支持这个。

【问题讨论】:

  • app.config 只是一个 XML 文件,那么问题出在哪里? ...更大的问题是您不应该从应用程序本身执行此操作,因为通常应用程序安装在非管理员用户不应具有写入权限的地方
  • 我已经更新了问题。我们可以使用GetSection 方法来获取设置部分,但似乎没有像AddSectionSetSection 这样的方法来添加新部分。这就是问题所在。
  • 为什么要将数据存储在配置文件中?这不是他们的目的。您应该考虑将此数据存储在不同的文件中。
  • 为什么要在运行时更新配置文件...?你想完成什么?

标签: c# wpf app-config


【解决方案1】:

您有多种选择。您使用的是哪个框架版本并不明显。从 .NET Core 开始,不再有 app.config 文件(默认情况下)。它已替换为 .settings 文件。

app.config

  1. 您可以直接修改 .config 文件 (XML) - 仅建议添加节等元素
  2. 使用 ConfigurationManager 类 (example) 读取/写入数据并创建部分
  3. 使用XmlDocument(或任何其他处理 XML 数据的技术)直接处理 XML 内容

XML 处理相当复杂,即使使用ConfigurationManager。有更好的解决方案,比如 JSON 文件,更方便。

.settings

  1. 使用 Visual Studio 设置设计器 GUI
  2. 使用ApplicationSettingsBase类的API (example)
  3. 手动编辑代码隐藏文件

正如名称​​.settings 所暗示的,这些文件的目的是存储设置而不是应用程序数据。当然,您可以使用 .settings 文件来存储任何数据,但请确保为此类数据创建一个专用文件(通过向您的项目添加新项目),以免将设置与数据混在一起。

由于 .settings 是基于属性的(键值对),存储像表或其他数据结构(例如树)这样的数据集不是很方便。

存储应用程序数据的常用方法是将 C# 对象序列化为 JSON 文本对象 (JSON serialization and deserialization) 或二进制格式 (Serialization (C#)),只需将数据写入结构化纯文本文件,如 .csv 文件、XML 和说话时当然,对于表,我们会立即想到一个数据库(例如,简单的基于文件的数据库,如 SQLite)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多