• Asp.Net.Core5 IOC依赖注入


    Asp.Net.Core5

       内置IOC容器

    一,IServiceCollection  依赖注入

         仅支持构造函数注入

    1,在Startup.cs 中  ConfigureServices方法注入服务

        services.AddTransient<Interfaces.IUser, Services.UserService>();

    public void ConfigureServices(IServiceCollection services)
            {
                #region  IOC 注册抽象和具体的依赖关系
                services.AddTransient<Interfaces.IUser, Services.UserService>();
                #endregion
    
                services.AddRazorPages().AddRazorRuntimeCompilation();
                services.AddSession();//注册Session
                services.AddControllersWithViews();
            }

    2,设置私有变量,构造函数设置参数并将值赋值给私有变量

    private readonly Interfaces.IUser userService = null;
            public UserController(
                Interfaces.IUser iUser
                )
            {
                this.userService = iUser;
            }

    3,调用方法

     public IActionResult Index()
            {
                base.ViewBag.Name= userService.GetName();
                return View();
            }

    4,在注册服务后,视图中通过关键字@inject 获取实例

    @using AspNetCore5Demo.Interfaces;
    @inject IUser iuser
    @{
        iuser.GetName();
    }

    二,IServiceProvider  注入

    1,构造函数中设置类型为 IServiceProvider  的参数,并赋值给(私有变量)

     private readonly IServiceProvider service = null;
            public UserController(
                IServiceProvider serviceProvider
                )
            {
                this.service = serviceProvider;
            }

    2,创建对象,并调用方法

    public IActionResult Index()
            {
                Interfaces.IUser user = (Interfaces.IUser)service.GetService(typeof(Interfaces.IUser));
                user.GetName();
    
                return View();
            }
  • 相关阅读:
    HSSFworkbook,XSSFworkbook,SXSSFworkbook区别总结
    var、let、const的区别
    寻找数组中的质数方法
    lintcode刷题笔记(二)
    CUDA11.2环境上MXNet源码和pytorch源码编译
    protobuf的使用(python)
    Hadoop集群安装-CDH5(5台服务器集群)
    Hadoop 2.6.0 HA高可用集群配置详解(一)
    Hadoop系列之(二):Hadoop集群部署
    Hadoop系列之(一):Hadoop单机部署
  • 原文地址:https://www.cnblogs.com/Linc2010/p/14333860.html
Copyright © 2020-2023  润新知