我的项目结构是这样的。
配置文件是下面
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Unity.Configuration"/>
</configSections>
<unity>
<typeAliases>
<typeAlias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity"/>
</typeAliases>
<sectionExtension type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension, Unity.Interception.Configuration"/>
<containers>
<container name="aopContainer">
<extension type="Interception"/>
<register type="TestUnityAop.BLL.IMenuBll,TestUnityAop" mapTo="TestUnityAop.BLL.MenuBll,TestUnityAop">
<interceptor type="InterfaceInterceptor"/>
<interceptionBehavior type="TestUnityAop.LogBeforeBehavior, TestUnityAop"/>
</register>
<register type="TestUnityAop.ViewModels.MainWinViewModel,TestUnityAop">
<interceptor type="VirtualMethodInterceptor"/>
<interceptionBehavior type="TestUnityAopLogBeforeBehavior, TestUnityAop"/>
</register>
<!--Mash-->
</container>
</containers>
</unity>
</configuration>
App.xaml.cs中的代码是下面
public partial class App : PrismApplication
{
protected override Window CreateShell()
{
/// 使用的容器:Unity
IUnityContainer unityContainer = Container.Resolve<IUnityContainer>();
// 配置文件
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "UnityConfig\\Unity.Config");
Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
//UnityConfigurationSection configSection = (UnityConfigurationSection)configuration.GetSection(UnityConfigurationSection.SectionName);
UnityConfigurationSection configSection = (UnityConfigurationSection)configuration.GetSection("unity");
configSection.Configure(unityContainer, "aopContainer");
unityContainer.Resolve<IMenuBll>().GetMenus();
return Container.Resolve<MainWin>();
}
}
但运行后报错
就是这个configSection返回值是空,不知是什么原因。望大神帮助一下啊!
相似问题