没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
全文可编辑 word 文档 页眉与背景水印可删除
1
在.NET Core 控制台程序中如何使用依赖注
入详解
背景介绍
Dependency Injection:又称依赖注入,简称 DI。在以
前的开发方式中,层与层之间、类与类之间都是通过 new 一
个对方的实例进行相互调用,这样在开发过程中有一个好处,
可以清晰的知道在使用哪个具体的实现。随着软件体积越来
越庞大,逻辑越来越复杂,当需要更换实现方式,或者依赖
第三方系统的某些接口时,这种相互之间持有具体实现的方
式不再合适。为了应对这种情况,就要采用契约式编程:相
互之间依赖于规定好的契约(接口),不依赖于具体的实现。
这样带来的好处是相互之间的依赖变得非常简单,又称松耦
合。至于契约和具体实现的映射关系,则会通过配置的方式
在程序启动时由运行时确定下来。这就会用到 DI。
依赖注入(Dependency Injection), 是面向对象编程中
的一种设计原则,可以用来减低代码之间的耦合度。在.NET
Core MVC 中
我们可以在 Startup.cs 文件的 ConfigureService 方法
中使用服务容器 IServiceCollection 注册接口及其实现类
全文可编辑 word 文档 页眉与背景水印可删除
2
的映射。
例如,当我们需要访问 Http 上下文时,我们需要配置
IHttpContextAccessor 接 口 及 其 实 现 类
HttpContextAccessor
public void ConfigureServices(IServiceCollection
services)
{
services.AddMvc().SetCompatibilityVersion(Compatibi
lityVersion.Version_2_1);
services.AddSingleton<IHttpContextAccessor,
HttpContextAccessor>();
}
那么当我们编写一个.NET Core 控制台程序的时候,我
们该如何使用依赖注入呢?
使用内置依赖注入
在.NET Core 中,内置依赖注入模块使用的程序集是
Microsoft.Extensions.DependencyInjection。
所以如果希望在控制台程序中使用内置依赖注入,我们
首 先 需 要 使 用 NUGET 添 加 对
Microsoft.Extensions.DependencyInjection 程 序 集 的 引
全文可编辑 word 文档 页眉与背景水印可删除
3
用。
PM> Install-Package
Microsoft.Extensions.DependencyInjection
这里为了说明如何使用.NET Core 内置的依赖注入模块,
我们创建以下 2 个服务接口。
public interface IFooService
{
void DoThing(int number);
}
public interface IBarService
{
void DoSomeRealWork();
}
然后我们针对这 2 个服务接口,添加 2 个对应的实现类
public class BarService : IBarService
{
private readonly IFooService _fooService;
public BarService(IFooService fooService)
{
_fooService = fooService;
}
剩余13页未读,继续阅读
资源评论
mmoo_python
- 粉丝: 0
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功