zoukankan      html  css  js  c++  java
  • Unity asp.net 依赖注入框架Unity

    1. 添加NuGet包引用 总共需要引入5个包 分别是 Unity.Container Unity.Interception.Configuration Unity.Interception Unity.Abstractions Unity
      2.添加配置文件 配置文件节点如下:
      `
    ` 3.工厂类:ContainerFactory.cs ` private static IUnityContainer _UnityContainer = null;
        /// <summary>
        /// 通过静态构造函数初始化Unity容器 
        /// 执行且只执行一次
        /// </summary>
        static ContainerFactory()
        {
            ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
            fileMap.ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "CfgFiles\Unity.Config");//找配置文件的路径
            Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
            UnityConfigurationSection section = (UnityConfigurationSection)configuration.GetSection(UnityConfigurationSection.SectionName);
            IUnityContainer container = new UnityContainer();
            section.Configure(container, "webApiContainer");
            _UnityContainer = container;
    
        }
    
        public static IUnityContainer BuildContainer()
        {
            return _UnityContainer;
        }`
    

    注意:配置文件下container的名称要与 工厂类的 的container名称相同

    4.使用工厂类创建对象
    var container = ContainerFactory.BuildContainer(); IUserService service = container.Resolve<IUserService>();

    5.使用构造函数注入

    A. 引入程序包 当前项目是WebApi Unity.AspNet.WebApi

    B. API配置类中进行配置 WebApiConfig.cs
    // Web API 配置和服务 config.DependencyResolver = new UnityDependencyResolver( ContainerFactory.BuildContainer());
    C. 控制器中构造函数进行注入

    private readonly IUserService service; public FirstController(IUserService service) { this.service = service; }

  • 相关阅读:
    iscsi序列一、搭建iscsi存储系统
    LVS系列三、LVS集群-IP-TUN模式
    LVS系列二、LVS集群-DR模式
    LVS系列一、LVS集群-NAT模式
    LINUX 的网站压力测试工具 webbench
    关于 /proc/sys/net/ipv4/下 文件的详细解释
    CentOS7+rsync+sersync实现数据实时同步
    Linux Shell 自动备份脚本
    Vim的强大配置文件
    nginx出现403 Forbidden解决方法
  • 原文地址:https://www.cnblogs.com/zhangdongwei/p/14526292.html
Copyright © 2011-2022 走看看