【问题标题】:Error adding multiple entries to an Enterprise Library container将多个条目添加到企业库容器时出错
【发布时间】:2014-06-26 14:57:00
【问题描述】:

我正在尝试在 Enterprise Library 5 容器中注册多个数据库。我可以注册一个,但无法注册第二个。谁能告诉我在下面的代码 sn-p 中我做错了什么?如果我取消注释已注释掉的部分,则会返回错误消息“已添加具有相同键的项目。”

我已经检查了各种主题,但无法找到答案。 https://entlib.codeplex.com/discussions/401337 http://entlib.codeplex.com/discussions/539775

向容器添加多个注册表的正确\首选方法是什么? VB 或 C# 中的任何答案将不胜感激。

    Private Sub RegisterDatabase()
    Dim _connectionString as string = "ConnectionString"
    Dim _connectionString2 as string = "ConnectionString2"

    Dim builder = New ConfigurationSourceBuilder

    builder.ConfigureData().ForDatabaseNamed(_databaseName). _
        ThatIs.AnOracleDatabase().WithConnectionString(_connectionString)
    '####################################################################
    'Code works fine with this section commented out. 
    'If it's added back in, then it errors with 'An item with the same key has already been added.'
    'builder.ConfigureData().ForDatabaseNamed("APPLICATION"). _
    '    ThatIs.AnOracleDatabase().WithConnectionString(_connectionString2).AsDefault()
    '####################################################################
    Dim configSource = New DictionaryConfigurationSource
    builder.UpdateConfigurationWithReplace(configSource)

    Dim container As IUnityContainer
    container = New UnityContainer()
    container.AddNewExtension(Of EnterpriseLibraryCoreExtension)()

    Dim configurator As New UnityContainerConfigurator(container)
    EnterpriseLibraryContainer.ConfigureContainer(configurator, configSource)
    EnterpriseLibraryContainer.Current = New UnityServiceLocator(container)

End Sub

【问题讨论】:

    标签: c# .net vb.net configuration enterprise-library


    【解决方案1】:

    好的,我从 Sujoy Roy Chowdhury 的回复中得到了答案 Changing connection string at runtime in Enterprise Library 他演示了以下语法:

    builder.ConfigureData() _
                .ForDatabaseNamed(_databaseName) _
                    .ThatIs.AnOracleDatabase() _
                        .WithConnectionString(_connectionString) _
                .ForDatabaseNamed("APPLICATION") _
                    .ThatIs.AnOracleDatabase() _
                        .WithConnectionString(_connectionString2).AsDefault()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多