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,我当然也会对该解决方案开放。