zoukankan      html  css  js  c++  java
  • unity IOC 的使用

    在Asp.NET MVC中使用Unity:

    第一步:

    NuGet

    安装 unity、unity

    第二步:

    在Global.asax.cs的Application_Start方法中添加对UnityConfig.RegisterComponents()的调用

    然后,Web API框架将使用Unity.WebAPI依赖解析程序来解析组件。


     第三步:写一个静态类,完成注册解析:

      public class UnityIocHelper : IServiceProvider
        {
            private readonly IUnityContainer _container;
            private static readonly UnityIocHelper instance = new UnityIocHelper("testContainer");
            private UnityIocHelper(string containerName)
            { 
                ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
                fileMap.ExeConfigFilename = HttpContext.Current.Server.MapPath("~/CfgFiles/Unity.Config");//找配置文件的路径
                Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
                UnityConfigurationSection section = (UnityConfigurationSection)configuration.GetSection(UnityConfigurationSection.SectionName);
               _container = new UnityContainer();
                section.Configure(_container, containerName); 
            }
    
            public static UnityIocHelper Instance
            {
                get { return instance; }
            }
            public object GetService(Type serviceType)
            {
                return _container.Resolve(serviceType);
            }
            public T GetService<T>()
            {
                return _container.Resolve<T>();
            }
            public T GetService<T>(params ParameterOverride[] obj)
            {
                return _container.Resolve<T>(obj);
            }
            public T GetService<T>(string name, params ParameterOverride[] obj)
            {
                return _container.Resolve<T>(name, obj);
            }
        }

    第四步,写配置文件

    <configuration>
      <configSections> 
        <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Unity.Configuration"/>
      </configSections>
      <unity> 
        <containers> 
          <container name="testContainer">
            <register type="UnityIOCTest.IUserInfoService,UnityIOCTest" mapTo="UnityIOCTest.UserInfoService,UnityIOCTest"/> 
          </container> 
            </containers>
      </unity>
    </configuration>

    第五步,使用

    IUserInfoService service =UnityIocHelper.Instance.GetService<IUserInfoService>();
    service.MethodInvoke();

     至此简单的集成及使用完成了。

  • 相关阅读:
    161012、JAVA读写文件,如何避免中文乱码
    161011、oracle批量插入数据
    161010、在大型项目中组织CSS
    160930、Javascript的垃圾回收机制与内存管理
    160929、各数据库连接配置与maven依赖安装
    Selenium学习(8) Cookie处理
    Selenium学习(7) 文件上传
    Selenium学习(6) 控制浏览器操作
    Selenium学习(5) 元素等待
    Selenium学习(4) 键盘操作
  • 原文地址:https://www.cnblogs.com/ruiying/p/12670393.html
Copyright © 2011-2022 走看看