【发布时间】: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