私の ASP.NET Web アプリは、SQL Server データ ストアに基づくカスタム リソース プロバイダーを利用しています。私が理解しているように、暗黙的なリソース割り当ては、コンパイル時にリソース プロバイダーを呼び出して、指定されたリソース キーに対してリソース式を生成する必要があるかどうかを判断します。その結果、私のビルド プロセスは、必要なリソース キーを含むライブの最新データベースに依存するようになりました。
それ自体は必ずしも問題ではありません。問題は、クエリ文字列パラメーターによって決定される多くのデータベースの 1 つにアプリが接続することです (ひどい設計ですが、残念ながら私は今のところそれで立ち往生しています)。明らかに、コンパイル時にクエリ文字列がないため、リソース プロバイダーはデータベースにアクセスできません。リソース プロバイダー (より具体的には、リソース プロバイダーの下流のコード) がコンパイル中に呼び出されたことを判断して、事前に定義されたデータベースを参照できるようにすることはできますか?
今のところ、HttpContext.Current == null の場合、特定のデータベースにデフォルト設定しています。これは正常に機能しますが、このロジックはデータ アクセス層に存在する必要があり、データ アクセス層が System.Web を参照するという考えは絶対に嫌いです。より良い解決策はありますか?