依赖注入对象创建说明

时间:2018-06-13 04:54:10

标签: c# dependency-injection

我正在为C#开发人员组建一个单元测试培训课程。我可以通过代码调试,看看在一些简单的依赖注入示例中发生了什么。但我无法找到单词/短语来准确描述创建类对象时传递的内容并将其传递给新服务。

两个问题。

这是怎么回事?

var test = new Service();
Client client = new Client(test);

与此不同?

Client client = new Client(new Service());

此示例中的服务使用的术语是什么?

new Client(new Service());

1 个答案:

答案 0 :(得分:2)

var test = new Service();
Client client = new Client(test);

在此示例中,Service 依赖关系存储在变量中并注入使用者< / strong> Client,使用构造函数注入

Client client = new Client(new Service());

在此示例中,Service 依赖关系直接注入Client的构造函数。

  

本例中服务使用的术语是什么?

在这种情况下,Service依赖Client消费者。它们都是组件。如果Client取决于IServiceIService服务抽象,而Service则是实施,或更一般地说:组件

组件是包含应用程序逻辑的应用程序类。组件是DI的重点,因为您构建了组件对象图。相反或组件是以数据为中心的对象,例如实体,DTO,消息,视图模型等。它们不包含任何行为,通常通过初始化对象图上的方法调用传递

有关完整的术语,请参阅Dependency Injection in .NET