安装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 + @"CfgFilesUnity.Config"); Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); UnityConfigurationSection configSection = (UnityConfigurationSection)configuration.GetSection(UnityConfigurationSection.SectionName); configSection.Configure(_Container, "aopContainer"); } }