В моей организации у нас есть несколько сред (Dev, QA, Stage, Prod, Disaster Recovery), и я хотел бы, чтобы мои файлы app / web.config не содержали специфических для среды деталей в URI, строках соединений и т. Д. Мой предпочтительный подход будет выполнять замену во время выполнения, например,
Вместо этого:
<endpoint address="http://MyDevWebServer/SomeService" binding="basicHttpBinding"...
Я бы предпочел что-то вроде этого:
<endpoint address="http://{Env:WebServerName}/SomeService" binding="basicHttpBinding"...
Это просто для настроек конфигурации, считываемых из классов, которые я контролирую (просто предоставьте оболочку, которая выполняет замену {Env: WebServerName} действительным именем сервера для этой среды), но я также хочу, чтобы эта замена выполнялась, когда настройки чтение из классов я не могу контролировать (например, WCF, NHibernate и т. д.). Кто-нибудь знает способ введения такого рода логики замещения. Я предполагаю, что подход AOP может быть возможен, но лично у меня нет большого опыта работы с инфраструктурами AOP.