Создание System.Configuration.Configuration путем объединения двух файлов конфигурации? - PullRequest
5 голосов
/ 28 июня 2011

У меня есть два файла .config, и мне нужно System.Configuration.Configuration , которое является частичным слиянием между ними?

Я могу читать файлы в формате XML и легко создавать желаемое слияние, но тогда это строка или XDocument. Однако System.Configuration .net выглядит строго на основе файлов, поэтому мне пришлось бы записать его во временный каталог, которого я бы хотел избежать.

Есть ли способ сделать это?

Пример, config1.config:

<configuration>
    <appSettings>
        <add key="CacheTime" value="300" />
    </appSettings>
    <system.serviceModel>
        <behaviors>
          <endpointBehaviors>
            <behavior name="MyBehavior">
               <!-- snipped -->
            </behavior>
          </endpointBehaviors>
        </behaviors>
    </system.serviceModel>
</configuration>

и config2.config:

<configuration>
    <system.serviceModel>
     <client>
          <endpoint name="MyEndpoint" address="net.tcp://...."
            behaviorConfiguration="MyBehavior" binding="netTcpBinding"
            contract="IMyContract">
          </endpoint>
     </client>
    </system.serviceModel>
</configuration>

Полученная конфигурация должна быть объединением этих двух, чтобы у меня были и AppSetting, и Endpoint. Теперь этот пример содержит WCF, но я не ищу конкретное решение для WCF, поскольку мне абсолютно необходим объект System.Configuration.Configuration.

config1 и config2 являются лишь примерами - их фактическая комбинация недетерминирована, у меня могут быть config1 и config4 или config 3 и config4 или config2 и config3.

1 Ответ

0 голосов
/ 29 июня 2011

Если ваша цель состоит в том, чтобы просто сделать ваши файлы конфигурации более модульными (и потенциально защитить доступ к файлам для определенных разделов), взгляните на System.Configuration.SectionInformation.ConfigSource .

...