Редактирование .config файла в коде - PullRequest
0 голосов
/ 19 июля 2011

Я пишу программу с использованием WPF и C #, в которой есть файл app.config, в котором хранится имя и расположение нескольких серверов. Программа динамически читает этот файл конфигурации и отображает его (среди прочего) в пользовательском интерфейсе.

Я пытаюсь включить внешний интерфейс для добавления новых серверов в файл конфигурации, чтобы пользователь мог ввести свойства необходимого сервера, а моя программа добавляет его в файл конфигурации.

Мой конфигурационный файл выглядит примерно так:

<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 голосов
/ 19 июля 2011

Я предлагаю создать пользовательские объекты, которые инкапсулируют эту информацию (серверы) и функции (добавление серверов), а затем сериализовать их в файл XML отдельно от web.config.Это сохраняет ваши пользовательские настройки в одном месте и позволяет избежать вмешательства в стандартный файл конфигурации, который я считаю полезным для настроек, которые не изменяются во время выполнения.Я сделал это для одного проекта, и он работает хорошо.

...