【问题标题】:Editing .config file in code在代码中编辑 .config 文件
【发布时间】:2011-07-19 05:38:15
【问题描述】:

我正在使用 WPF 和 C# 编写一个程序,该程序有一个“app.config”文件,其中存储了多个服务器的名称和位置。程序从这个配置文件中动态读取,并在 UI 中显示它(除其他外)。

我正在尝试包含一种将新服务器添加到配置文件的前端方式,以便用户可以输入所需服务器的属性,然后我的程序将其添加到配置文件中。

我的配置文件基本上看起来像这样:

<ServerConfig>
<Environment name="PROD">
  <Server host="h1" share="s1" source="x1"/>
  <Server host="h6" share="s1" source="x1"/>
  <Server host="h7" share="s1" source="x1"/>
  <Server host="h8" share="s1" source="x1"/>
  <Server host="h155" share="s1" source="x1"/>
</Environment>
<Environment name="DEV">
  <Server host="h2" share="s2" source="x2"/>
  <Server host="h55" share="s1" source="x1"/>
  <Server host="h115" share="s1" source="x1"/>
</Environment>
<Environment name="QA">
  <Server host="h3" share="s3" source="x3"/>
  <Server host="h46" share="s1" source="x1"/>
  <Server host="h15" share="s1" source="x1"/>
  <Server host="h2" share="s1" source="x1"/>
  <Server host="h234" share="s1" source="x1"/>
  <Server host="h6" share="s1" source="x1"/>
  <Server host="h146" share="s1" source="x1"/>
</Environment>
</ServerConfig>

我希望用户能够输入主机、共享、来源和环境,并且我需要找到一种方法将这行 Xml 代码放置在适当的位置。

有没有办法搜索具有特定“名称”的标签(例如搜索“QA”环境)并在其后添加行? XmlWriter/XmlSerializer 似乎只能从 Xml 文件的开头写入,不能在写入前梳理。

感谢您的帮助。

【问题讨论】:

  • 你以-100分开始这个问题。您假设您可以写入 app.config 文件。你不能。并非没有获得 UAC 许可。现在可以了,部署应用后就不行了。
  • 是的,你是对的。不过,我想我对单独的 XML 文件也有同样的问题。

标签: .net xml xml-serialization app-config editing


【解决方案1】:

我建议创建自定义对象来封装这些信息(服务器)和功能(添加服务器),然后将它们序列化为一个与 web.config 分开的 XML 文件。这将您的自定义设置保存在一个地方,并避免干预标准配置文件,我认为这对于在运行时未更改的设置很有用。我已经为一个项目做过这个,效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 2020-12-21
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    相关资源
    最近更新 更多