Unity Application Block--通过配置文件读取映射 一、从应用程配置文件中读取映射 IUnityContainer containerConfig = new UnityContainer(); UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); section.Containers["containerTest"].Configure(containerConfig); ILog log = containerConfig.Resolve<ILog>(); log.WriteLog("1.从应用程配置文件中读取映射"); log.WriteLog("*****************************************************"); 二、从外部配置文件中读取映射 IUnityContainer containerExternal = new UnityContainer(); FileConfigurationSource configExternal = new FileConfigurationSource("external.config"); UnityConfigurationSection sectionExternal = (UnityConfigurationSection)configExternal.GetSection("unity"); sectionExternal.Containers["containerExternal"].Configure(containerExternal); ILog logExternal = containerExternal.Resolve<ILog>(); logExternal.WriteLog("2.从外部配置文件中读取映射"); 三、App.config 内容 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" /> <section name="enterpriseLibrary.ConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common" /> </configSections> <unity> <containers> <container name="containerTest"> <types> <type type="UnityTest.ILog,UnityTest" mapTo="UnityTest.MessageLog,UnityTest"/> </types> </container> </containers> </unity> <enterpriseLibrary.ConfigurationSource selectedSource="File Configuration Source"> <sources> <add name="File Configuration Source" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common" filePath="Config/control.config" /> </sources> </enterpriseLibrary.ConfigurationSource> </configuration> 四、外部配置文件(external.config)内容 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" /> </configSections> <unity> <containers> <container name="containerExternal"> <types> <type type="UnityTest.ILog,UnityTest" mapTo="UnityTest.MessageLog,UnityTest"/> </types> </container> </containers> </unity> </configuration> 完整源代码:UnityTest