0
這是一些具體和困難的情況來解釋,請耐心等待。在Unity中加載和配置其他.config文件時,防止頂層Config的命名空間被擦除
我創建了一個負責加載和配置其他.config文件的UnityContainerExtension。
例如,我的app.config文件看起來是這樣的:在
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<assembly name="SomeAssembly" />
<namespace name="SomeAssembly.SomeNameSpace" />
<container>
<extension type="ConfigSectionExtension" />
<extension type="TestExtension" />
</container>
</unity>
</configuration>
我的第一個擴展ConfigSectionExtension
運行的代碼(以下),其裝載和配置與其他config文件的容器。恩。
var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = "logging.config"};
Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
((UnityConfigurationSection)configuration.GetSection("unity")).Configure(Container);
此代碼運行正常,但是TestExtension擴展在我的配置能不能得到解決的集裝箱已經配置了logging.config
文件之後。
的特異性應答是
"The type name or alias TestExtension could not be resolved."
如果刪除加載和配置logging.config
文件與所述容器中的代碼,則這兩個擴展中找到。有什麼辦法可以做到這一點?
這實質上是我的方法來解決無法將多個.config文件鏈接在一起的問題。如果有人知道更好的方式來將.config文件鏈接到Unity,我當然也會對該解決方案開放。