service注入为空_NetCore实现Autofac依赖注入

转载本文务必须注明出处、微信号(Yemeir_com)、以及添加原文链接。


NetCore实现Autofac依赖注入

Autofac是什么?

Autofac是一款.Net IOC容器,我们可以用它来管理类之间的依赖,并且将.NET类当做组件处理。

本文主要介绍在ASP.NET Core中依赖注入(DI)框架。比如:我们要注入开发框架中的服务层等。

安装Autofac

在Nuget管理程序中,搜索并安装Autofac.Extensions.dependencyInjection。

Program.cs文件配置:

        我们将Autofac添加到应用程序的启动管道中。

a54e3d7b1ea787f375f512092ee7be32.png

重写Autofac.Module

        创建一个类,该类继承Autofac.Module。重写其中的Load方法,在方法中我们可以使用反射来构建注入。并且在控制器中使用属性注入。

3bc73d94bf319230746ed63608b5e676.png

Startup.cs文件配置:

        我们利用容器配置方法(ConfigureContainer)来单独注入Autofac,不再使用Startup中的ServiceConllection。怎么做呢?我们在Startup文件中添加一个ConfigureContainer,并将Autofac中的容器构建类(ContainerBuilder)做为参数传入。并将重写的Autofac.Module方法注册到容器中。

39fac428ab7c40128176f218284db398.png

如何使用

        我们有两种方式可在控制器中注入:构造函数注入、属性方式注入。

b4f51809c4b51627cc7ac686097dc0c0.png

这时运行程序我们可能会发现属性注入方式的对象为空,抛出异常错误。这时我们需要的Startup中ConfigureServices方法中加入如下代码

4c7598427b94b849a8d53666c74852fb.png

至此我们使可以在控制器中注入服务层中以Service结尾的任何类并调用类中的方法。


如果喜欢请关注支持笔者,您的关注是笔者源源不断创作的动力!

转载本文务必须注明出处、微信号(Yemeir_com)、以及添加原文链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值