安装NuGet 包

代码注册:
//IUnityContainer container = new UnityContainer(); //container.RegisterType<IPhone, Phone>(); //container.RegisterType<IMicrosoftPhone, MicrosoftPhone>(); //container.RegisterType<IBaseDal, BaseDal>(); //container.RegisterType<IMakePhone, MakePhone>(); //IPhone phone = container.Resolve<IPhone>();
配置文件注册:
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Unity.Configuration"/>
<!--Microsoft.Practices.Unity.Configuration.UnityConfigurationSection-->
</configSections>
<unity>
<sectionExtension type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension, Unity.Interception.Configuration"/>
<containers>
<container name="aopContainer">
<extension type="Interception"/>
<register type="XShape.Core.IUserProcessor,XShape.Core" mapTo="XShape.Core.UserProcessor,XShape.Core">
<interceptor type="InterfaceInterceptor"/>
<!--<interceptionBehavior type="MyAOP.UnityWay.MonitorBehavior, MyAOP"/>
<interceptionBehavior type="MyAOP.UnityWay.LogBeforeBehavior, MyAOP"/>
<interceptionBehavior type="MyAOP.UnityWay.ParameterCheckBehavior, MyAOP"/>
<interceptionBehavior type="MyAOP.UnityWay.CachingBehavior, MyAOP"/>
<interceptionBehavior type="MyAOP.UnityWay.ExceptionLoggingBehavior, MyAOP"/>
<interceptionBehavior type="MyAOP.UnityWay.LogAfterBehavior, MyAOP"/>-->
</register>
</container>
</containers>
</unity>
</configuration>
加载配置文件:
public class ContainerFactory
{
public static IUnityContainer BuildContainer()
{
return _Container;
}
private static IUnityContainer _Container = null;
static ContainerFactory()
{
_Container = new UnityContainer();
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + @"CfgFiles\Unity.Config");
Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
UnityConfigurationSection configSection = (UnityConfigurationSection)configuration.GetSection(UnityConfigurationSection.SectionName);
configSection.Configure(_Container, "aopContainer");
}
}
原文:https://www.cnblogs.com/delaywu/p/12684043.html