1

有没有办法动态/以编程方式设置 EntLib 5 数据库跟踪侦听器使用的连接字符串?

我在 Windows Azure 中托管我的 WCF 服务,这意味着一旦部署了 web.config,我将无法访问它。为了消除每当我想将数据库跟踪侦听器指向不同的数据库时重新部署我的解决方案的需要,我希望有一种方法可以从我的服务配置文件中提取该设置并动态设置它。

4

1 回答 1

3

是的,您可以使用本文所述流畅配置

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);
于 2012-09-10T18:28:57.580 回答