创建项目

1.创建一个.net core 项目

2.创建一个类库

2.1创建interface文件夹

2.2创建Service文件夹

好了给大家看项目目录

对的。我创建了一个IUserService和一个UserService

然后给大家贴一下代码

using System;
using System.Collections.Generic;
using System.Text;namespace AutofaceTest.Service.Interface
{public interface IUserService{string GetUserName();}
}

using AutofaceTest.Service.Interface;
using System;
using System.Collections.Generic;
using System.Text;namespace AutofaceTest.Service.Service
{public class UserService : IUserService{public string GetUserName(){return "恩很~是我";}}
}

添加引用

需要通过nuget添加引用 需要的引用如下

1.Autofac

2.Autofac.Configuration

3.Autofac.Extensions.DependencyInjection

配置startup文件

原来的ConfigureServices

        public void ConfigureServices(IServiceCollection services){services.AddMvc();}

修改成这个样子

        public IContainer ApplicationContainer { get; private set; }// This method gets called by the runtime. Use this method to add services to the container.public IServiceProvider ConfigureServices(IServiceCollection services){//返回的void 修改为 IServiceProvider 这是为了让第三方Ioc容易接管通道 具体在第几层怎么实现我没有深入研究
            services.AddMvc();var builder = new ContainerBuilder();//实例化 AutoFac  容器            builder.Populate(services);//管道寄居builder.RegisterType<AutofaceTest.Service.Service.UserService>().As<Service.Interface.IUserService>();//UserService注入到IUserServiceApplicationContainer = builder.Build();//IUserService UserService 构造return new AutofacServiceProvider(ApplicationContainer);//将autofac反馈到管道中}

在Controller中调用

        private IUserService _userService;public HomeController(IUserService userService){_userService = userService;}public IActionResult Index(){ViewBag.Uname = _userService.GetUserName();//这里就可以直接调用啦。return View();}

后记

刚刚创建了一个.net core的群欢迎大家进入:

点击链接加入群聊【.Net Core研究团】:https://jq.qq.com/?_wv=1027&k=5IEolkJ

如果我的文章对您有帮助,希望您可以点个赞。最近打算申请mvp。希望大家帮忙。

转载于:https://www.cnblogs.com/Extnet/p/9687172.html

.net Core 2.*使用autofac注入相关推荐

  1. 如何在 ASP.Net Core 中使用 Autofac

    依赖注入可以有效的实现对象之间的 松耦合 并能够实现代码的可测试和可维护性,ASP.Net Core 提供了一个极简版的容器实现对 依赖注入 的原生支持,然而内置的依赖注入容器相比成熟的 依赖注入容器 ...

  2. 【半小时大话.net依赖注入】(一)理论基础+实战控制台程序实现AutoFac注入

    第一章|理论基础+实战控制台程序实现AutoFac注入 第二章|AutoFac的常见使用套路 第三章|实战Asp.Net Framework Web程序实现AutoFac注入 第四章|实战Asp.Ne ...

  3. ASP.NET Core 中的依赖注入

    什么是依赖注入 软件设计原则中有一个依赖倒置原则(DIP),为了更好的解耦,讲究要依赖于抽象,不要依赖于具体.而控制反转(Ioc)就是这样的原则的其中一个实现思路, 这个思路的其中一种实现方式就是依赖 ...

  4. 拥抱.NET Core系列:依赖注入(2)

    上一篇"拥抱.NET Core系列:依赖注入(1)大体介绍了服务注册.获取和生命周期,这一篇来做一些补充.由于内容跨度大(.NET Core.ASP.NET Core),所以文章并不是非常的 ...

  5. ASP.NET Core中的依赖注入(4): 构造函数的选择与服务生命周期管理

    ServiceProvider最终提供的服务实例都是根据对应的ServiceDescriptor创建的,对于一个具体的ServiceDescriptor对象来说,如果它的ImplementationI ...

  6. winform防止sqlserver注入_ASP.NET Core 中的 依赖注入介绍

    ASP.NET Core 依赖注入 HomeController public class HomeController : Controller { private IStudentReposito ...

  7. ASP.NET Core Web 应用程序系列(三)- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)...

    在上一章中主要和大家分享了在ASP.NET Core中如何使用Autofac替换自带DI进行构造函数的批量依赖注入,本章将和大家继续分享如何使之能够同时支持属性的批量依赖注入. 约定: 1.仓储层接口 ...

  8. ASP.NET Core Web 应用程序系列(二)- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)...

    在上一章中主要和大家分享在MVC当中如何使用ASP.NET Core内置的DI进行批量依赖注入,本章将继续和大家分享在ASP.NET Core中如何使用Autofac替换自带DI进行批量依赖注入. P ...

  9. .Net Core 3.0依赖注入替换 Autofac

    今天早上,喜庆的更新VS2019,终于3.0正式版了呀~ 有小伙伴问了一句Autofac怎么接入,因为Startup.ConfigureServices不能再把返回值改成IServiceProvide ...

  10. service 层注入不同的数据源_.NET 理论基础+实战控制台程序实现AutoFac注入

    (给DotNet加星标,提升.Net技能) 转自:在7楼 cnblogs.com/RayWang/p/11128554.html 简介 该系列共5篇文章,旨在以实战模式,在.NET下的 控制台程序 F ...

最新文章

  1. python io流,Python io流会在列表理解中自动关闭吗?
  2. 多层陶瓷电容器用处_陶瓷电容的作用及特点
  3. 操作系统原理:中断,异常,系统调用
  4. elasticsearch 自定义routing
  5. python交互式命令_从python内部运行交互式命令
  6. 【信号】信号集、sigprocmask、sigpending
  7. 计算机节电模式不能打开,电脑进入节电模式打不开怎么办
  8. java中字符串后加Box_字符串未显示在JavaFX中ComboBox的Tableview上
  9. Spring Data JPA 必须掌握的 20+ 个查询关键字
  10. vscode写c++好吗_寒假实习简历你会写吗?四个问题帮你写好寒假实习简历
  11. const int * pi/int * const pi的区别
  12. IE8的模式修改优化Windows7
  13. 河南省邓州市计算机学校,2019年邓州市职业技术学校招生简章及招生专业
  14. IDEA利用wsdl文件生成WebService调用接口的方法
  15. NCRE一到四级的刷题软件
  16. 网络对时服务器(NTP校时服务器)应用港口信息化系统
  17. 如何打开计算机控制界面,如何打开控制面板 【使用途径】
  18. 百度网盘web登录页-原生js实现
  19. C++线程池原理及创建
  20. LOJ#2833 「JOISC 2018 Day 1」帐篷 dp

热门文章

  1. console觉醒之路,打印个动画如何?
  2. 一小时精通SVN版本控制 之五 团队协作开发
  3. 小型公司 --- OSPF 不连续区域进行通信配置
  4. eclipse adt开发android ndk没有NDK选项问题的解决方案
  5. 说说VNode节点(Vue.js实现) 1
  6. 《Producter:让产品从0到1》一导读
  7. resizableImageWithCapInsets:方法的探析 (转载笔记)
  8. Linux系统升级硬盘后HOME分区扩容操作流程
  9. java:通过Calendar类正确计算两日期之间的间隔
  10. 用lua实现ByteArray和ByteArrayVarint