2016-10-24 11 views
0

У меня есть проект, в котором я поддерживаю отдельные файлы app.config для строк подключения для каждой среды, например Dev.config для dev env, QA.config для QA и т. Д. У меня есть главный файл app.config, в котором я просто вхожу в env как «Dev» или «QA», а специальные строки подключения env активируются, как показано ниже.Повторяющиеся ключи в app.config

Dev.config

<?xml version="1.0" encoding="utf-8" ?> 
<connectionStrings> 
    <add name="connection1" connectionString="<dev_string>" /> 
    <add name="connection2" connectionString="<dev_string>"/> 
</connectionStrings> 

QA.config

<?xml version="1.0" encoding="utf-8" ?> 
<connectionStrings> 
    <add name="connection1" connectionString="<qa_string>" /> 
    <add name="connection2" connectionString="<qa_string>"/> 
</connectionStrings> 

App.config

<connectionStrings configSource="ConnectionStrings\Dev.config"> 
</connectionStrings> 

Но теперь у меня есть reqmt. где должны быть реализованы функции межсегментной среды. Каков наилучший подход к этому? Я мог бы добавить каждую строку соединения в master app.config, указав ей определенное имя env, но я считаю, что это не лучший подход.

Итак, существует ли способ сохранить особые конфигурационные файлы env и загружать все строки подключения во все среды в главном app.config в разных пространствах имен или что-то, чтобы избежать ошибок дублирования ключа?

Заранее спасибо за помощь ...

+0

Нечетное требование – Paparazzi

ответ

0

Если я правильно Вас понял я могу порекомендовать вам использовать по умолчанию XDT: Transform синтаксис как в Web.Config/Debug/Release. Для файлов app.config вы можете использовать что-то вроде этого пакета https://visualstudiogallery.msdn.microsoft.com/7bc82ddf-e51b-4bb4-942f-d76526a922a0

+0

Спасибо за ответ, но я не уверен, что это сработает для меня. Я ищу способ доступа к связующим строкам всех сред в коде с теми же ключами «connection1» и «connection2»; возможно, используя пространство имен, например dev.connection1 или qa.connection1. В то же время я хотел бы, чтобы ConfigurationManager.ConnectionStrings ["connection1"] указывал на определенную среду, установленную в конфиге. Это возможно? – mantadt

 Смежные вопросы

  • Нет связанных вопросов^_^