• .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>();
           } }
  • 相关阅读:
    阿里妈妈MaxCompute架构演进_-_AON(MPI)集群
    阿里云ECS部署Grafana接入zabbix
    ECS实例RAM角色实践
    上海云栖—人工智能-视觉计算专场预热
    阿里云论坛版主制作最新教程汇总贴
    移动相关的css
    GULP入门(一)
    mongodb+nodejs 增删查的demo
    nodejs+express 初学(三)
    nodejs+express 初学(二)
  • 原文地址:https://www.cnblogs.com/LahGo/p/8933823.html
Copyright © 2020-2023  润新知