EntLib 5 データベース トレース リスナーが使用する接続文字列を動的/プログラム的に設定する方法はありますか?
Windows Azure で WCF サービスをホストしています。つまり、web.config がデプロイされると、アクセスできなくなります。DB トレース リスナーを別の DB に向けたいときはいつでもソリューションを再デプロイする必要をなくすために、サービス構成ファイルからその設定を取得して動的に設定できる方法があることを望んでいました。
EntLib 5 データベース トレース リスナーが使用する接続文字列を動的/プログラム的に設定する方法はありますか?
Windows Azure で WCF サービスをホストしています。つまり、web.config がデプロイされると、アクセスできなくなります。DB トレース リスナーを別の DB に向けたいときはいつでもソリューションを再デプロイする必要をなくすために、サービス構成ファイルからその設定を取得して動的に設定できる方法があることを望んでいました。
はい、この投稿で説明されているように流暢な構成を使用できます。
var builder = new ConfigurationSourceBuilder();
builder.ConfigureData()
.ForDatabaseNamed("MyDb")
.ThatIs.ASqlDatabase()
.WithConnectionString(RoleEnvironment.GetConfigurationSettingValue("MyConnectionString"))
.AsDefault();
builder.ConfigureLogging()
.WithOptions
.LogToCategoryNamed("General")
.SendTo
.Database("Formatted Database TraceListener").UseDatabase("MyDb")
...;
var configSource = new DictionaryConfigurationSource();
builder.UpdateConfigurationWithReplace(configSource);
EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(configSource);