Unity ICO

安装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");
        }
    }

  

 

原文地址:https://www.cnblogs.com/delaywu/p/12684043.html