在代码中编辑.config文件

时间:2011-07-18 21:23:57

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

我正在编写一个使用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文件的开头写入,而不是在写入之前梳理它。

我感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我建议创建封装此信息(服务器)和功能(添加服务器)的自定义对象,然后将这些文件序列化为与web.config分开的XML文件。这样可以将您的自定义设置保存在一个位置,并避免插入标准配置文件,我认为该文件对于在运行时未更改的设置非常有用。我已经为一个项目做了这个,它运作良好。