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

本文探讨了.NET Core中依赖注入的构造函数选择原则及泛型服务注册,并演示了如何集成Autofac作为第三方DI容器。同时介绍了ASP.NET Core中每个请求如何创建新的DI子容器以避免资源泄漏。

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

构造函数的选择

如果一个服务中包含多个构造函数,.NET Core会选择哪一个呢?

答案是:最大匹配的构造函数。

我们来看个示例


泛型服务

单个泛型

多个泛型


集成第三方DI容器

我们这边使用Autofac来做演示。

安装packages:“Autofac.Extensions.DependencyInjection”

在 ASP.NET Core

注意修改“ConfigureServices”方法的返回值为“IServiceProvider”。


在 View 中使用服务


其它

在 ASP.NET Core 中,每个Request,都会创建一个新的DI子容器,在请求结束后会销毁该DI子容器。这样可以很好的避免资源泄漏。子容器的服务生命周期可以参考上一篇文章。

原文地址:http://www.cnblogs.com/ants/p/7148674.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值