2009-04-21 9 views
4

私のカスタムServiceHostのApplyConfigurationメソッドをオーバーライドして、app.configではなくデータベースから設定を読み込もうとしています。理想的には、次のようなことができるようにしたいと考えています。カスタムの場所、つまり.NETのデータベースからapp.configを読み取る方法

設定config = GetConfigFromMyDatabase(...);

ServiceModelSectionGroup serviceModel = ServiceModelSectionGroup.GetSectionGroup(config);

一時app.configファイルを作成せずにこれを行う方法はありますか?

答えて

4

どう使用について:あなたは、任意のapp.configファイルを開いてみましょうする必要があり

System.Configuration.ConfigurationManager.OpenExeConfiguration(string exePath) 

-1

temp configファイルを書きたくないのですが、これを実行する最善の方法は、サービスを別のAppDomainにホストすることです。

AppDomainを作成する前に、データベースから設定を取得してファイルシステムに書き込んでください。その後、AppDomainを作成するときに、configソースとしてデータベースから取得したtemp configファイルをポイントします。

もちろん、データベース内のconfigは、完全なapp.configファイルでなければならないか、または他の非serviceModelコンフィグレーションビットを含む何らかの種類のテンプレート設定ファイルとマージする必要がありますあなたのアプリの残りの部分。

これをこのように実装することは、非常にうまく解決され、うまく機能します(前に使用しています)。

+0

は非常にハッキーです! – Cheeso

1

カスタムServiceHostを作成する場合は、個別のAppDomainは必要ありません。

ServiceHostには、オーバーライド可能なApplyConfigurationメソッドがあります。あなたは好きな場所からconfigを読み込むことができます。

See hereこのテクニックを概説します。

関連する問題