私の組織には複数の環境 (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 フレームワークの経験はあまりありません。