• .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>();
           } }
  • 相关阅读:
    java 多线程2
    java 多线程1
    java Object
    java 模板
    03015_JSTL技术
    运维人员常用的Linux命令总结
    oracle的userenv和nls_lang详解
    Oracle字符集检查和修改
    sql语句中(+)的作用
    Oracle事务Transaction
  • 原文地址:https://www.cnblogs.com/LahGo/p/8933823.html
Copyright © 2020-2023  润新知