在.net2以上的版本通过程序包管理器控制台安装完Unity.Mvc4之后,每次运行到Bootstrapper文件中的
UnityConfigurationSection configuration = (UnityConfigurationSection)ConfigurationManager.GetSection(UnityConfigurationSection.SectionName);
的时候会弹出,
无法读取配置节“unity”,因为它缺少节声明
的错误,网上的资料都没有讲这个问题。
通过这篇文章了解到需要在配置文件中配置一下配置节,在app.config文件中,配置节如下
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,
Microsoft.Practices.Unity.Configuration" />
</configSections>
<unity>
<containers>
<container name="defaultContainer">
<register type="UnityContainerDemo.IPeople, UnityContainerDemo" mapTo="UnityContainerDemo.VillagePeople01, UnityContainerDemo">
<lifetime type="singleton" />
</register>
<register type="UnityContainerDemo.IWaterTool, UnityContainerDemo" mapTo="UnityContainerDemo.PressWater, UnityContainerDemo"/>
</container>
</containers>
</unity>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
</configuration>
在webfrom以及mvc程序中也差不多<configSections>
</configSections>节中的内容与下面的unity节是对应的。这点十分重要
在webfrom 中的配置如下
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,
Microsoft.Practices.Unity.Configuration" />
</configSections>
<unity>
<containers>
<container name="defaultContainer">
<register type="WebApplication2.IArticleRepository, WebApplication2" mapTo="WebApplication2.IArticleRepository, WebApplication2">
<lifetime type="singleton" />
</register>
</container>
</containers>
</unity>