zoukankan      html  css  js  c++  java
  • .netCore下的依赖注入扩展 -- AutoFac

    使用AutoFac实现依赖注入我们需要引用一下两个Nuget包

     接下来就是我们替换Asp.netCore默认为我们实现的依赖注入功能了。如果对core默认实现不清楚的朋友可以点此连接查看

    使用构造函数注入

    看下代码:

      public interface IUser
        {
            string GetName();
        }
        public class User : IUser
        {
            public string GetName()
            {
                return "User1";
            }
        }

    User是要注入的对象。接下来是修改StartUp类中ConfigureServices方法

       public void ConfigureServices(IServiceCollection services)
            {
    
    
            }

     我们把Void返回值替换成IServiceProvider。

     public IServiceProvider ConfigureServices(IServiceCollection services)
            {
    
                var containerBuilder= new ContainerBuilder();
                containerBuilder.RegisterType<User>().As <IUser>();
                containerBuilder.Populate(services);
                var container = containerBuilder.Build();
                return new AutofacServiceProvider(container);
    
             
               
            }

    我们配置好StatUp类接下来就是使用注入的User对象了。在此我使用MVC里的Controller演示

      public class HomeController : Controller
    {
            public IUser _user { get; set; }
            public HomeController(IUser user) {
                _user = user;
            }
             public IActionResult Index()
            {
                 _user.GetName();
                return View();
            }
    }

    就这样我们完成了AutoFac的构造函数注入。AutoFac不仅仅有RegisterType注入方式,比如可以通过模块化的方式注入

    StartUp中ConfigureServices方法:

    containerBuilder.RegisterModule<AspCoreMVCIdentityDemo.AutoFac.AutoFacModule>();
     public class AutoFacModule:Module
        {
            protected override void Load(ContainerBuilder builder)
            {
                builder.RegisterType<User>().As<IUser>();
           } }
  • 相关阅读:
    redis使用基础(一) ——Redis基本概述与安装配置
    Linux学习闲谈(三) ——SVN用法及切版本与合版本
    Linux学习闲谈(二) ——SVN版本控制拾遗
    Linux学习闲谈(一)——Shell基本操作与命令
    linux1
    git命令
    ubuntu
    laradock
    实用工具
    grumphp在docker里问题
  • 原文地址:https://www.cnblogs.com/LahGo/p/8933823.html
Copyright © 2011-2022 走看看