有没有办法动态/编程设置EntLib 5数据库跟踪侦听器使用的连接字符串?
我在Windows Azure中托管我的WCF服务,这意味着部署后我将无法访问web.config。为了消除每当我想要将数据库跟踪侦听器指向不同的数据库时重新部署我的解决方案的需要,我希望有一种方法可以从我的服务配置文件中提取该设置并动态设置它。
答案 0 :(得分:3)
是的,您可以使用the fluent configuration所述的in this post:
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);