在我的应用程序中,我询问用户他们想要连接到哪个数据库,然后我将其写回 EL5.0,如下所示:
var builder = new ConfigurationSourceBuilder();
builder.ConfigureData()
.ForDatabaseNamed("UserDatabase")
.ThatIs.ASqlDatabase()
.WithConnectionString(sqlConnectionStringBuilder.ConnectionString)
.AsDefault();
var configSource = new DictionaryConfigurationSource();
builder.UpdateConfigurationWithReplace(configSource);
EnterpriseLibraryContainer.Current
= EnterpriseLibraryContainer.CreateDefaultContainer(configSource);
每当我像这样调用 GetInstance 时都会使用它:
TestSQLConnection testSQLConnection =
EnterpriseLibraryContainer.Current.GetInstance<TestSQLConnection>();
现在我正在尝试在我的程序主类中使用 Unity
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
IUnityContainer unityContainer = new UnityContainer().AddNewExtension<EnterpriseLibraryCoreExtension>();
Application.Run(unityContainer.Resolve<MainForm>());
}
我使用 UnityContainer,它是 MainForm 的依赖项之一,而不是 GetInstance():
TestSQLConnection testSQLConnection = unityContainer.Resolve<TestSQLConnection>();
但这不使用更新的配置。
如何像使用 EL 静态类一样在 Unity 中合并更新的配置?