zoukankan      html  css  js  c++  java
  • 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();
            }
  • 相关阅读:
    POJ 2348 Euclid's Game【博弈】
    POJ 2484 A Funny Game【博弈】
    HDU 4193 Non-negative Partial Sums【单调队列】
    占坑补题
    Codeforces 658D Bear and Polynomials【数学】
    Codeforces 658C Bear and Forgotten Tree 3【构造】
    Codeforces 658B Bear and Displayed Friends【set】
    POJ 1704 Georgia and Bob【博弈】
    1001. A+B Format

  • 原文地址:https://www.cnblogs.com/Linc2010/p/14333860.html
Copyright © 2011-2022 走看看