我想将 Unity 集成到我的应用程序中,并且希望它使用外部配置文件
Unity初始化代码是
var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = "unity.config" };
System.Configuration.Configuration configuration =
ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
// *** problem starts here ***
var unitySection = (UnityConfigurationSection)configuration.GetSection("unity");
var container = new UnityContainer().LoadConfiguration(unitySection);
我还有用于统一的外部配置文件,名为“unity.config”,包含以下内容
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<alias alias="IEmailConfigurator" type="Server.Common.Interfaces.IEmailConfigurator, Server.Common" />
<alias alias="EmailConfigurator" type="Server.Common.EmailConfigurator, Server.Common" />
<namespace name="Server.Common.Interfaces" />
<namespace name="Server.Common" />
<container>
<register type="IEmailConfigurator" mapTo="EmailConfigurator" />
</container>
</unity>
问题是,在我想要加载 unitySection 的行中,GetSection() 返回 null。
可能是什么问题呢?
EDIT
I added
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
</configSections>
但是,现在当我跟踪代码时,在线
System.Configuration.Configuration configuration = //...
初始化 FilePath 属性的配置变量是 C:\Program Files (x86)\IIS Express\unity.config,而不是我自己的 unity.config 文件
知道如何从 Web 文件夹引用配置文件吗?
谢谢。