首页 > 解决方案 > 在 DI 模式的上下文中,“绑定”是什么意思?

问题描述

binding在 DI 模式的上下文中是什么意思?

我正在通过这里IoC的教程。我遇到了以下摘录:

依赖注入 (DI) 是一种用于实现 IoC 的设计模式。它允许在类之外创建依赖对象,并通过不同的方式将这些对象提供给类。使用 DI,我们将依赖对象的创建和绑定移到依赖它们的类之外。

我不明白这里指的是什么绑定?

我猜这里提到的绑定是关于设置客户端类字段的。但在这种情况下,我们不会使用 DI 移动这样的绑定。因为,DI有三种使用方式:构造函数、属性(setter)和方法。并且所有这些方式都不会将绑定(客户端类字段的分配)移动到类之外,所有这些都发生在客户端类的范围内。所以,我在这里很困惑。

更新在对这个问题提供了一些答案后,我得出一个结论,即绑定是 什么有两种可能的定义。

1绑定意味着将依赖类内部使用的接口映射到实际的对象类型。

2绑定意味着将实际类型作为接口参数的实参传递到依赖类中。

正确的定义12是什么?还是绑定的定义取决于提到绑定的上下文?

标签: c#design-patternsdependency-injectionbindinginversion-of-control

解决方案


绑定是什么意思?

这意味着我们的依赖类将由 IoC 容器自动解析。

例如:

我们有IRepository interfaceRepository class.

如果我们将这两者绑定在一起。每次我们请求IRepository,我们的容器都会自动为我们提供Repository类。

这使得更改 Repository 类的实现变得非常容易。因为我们不是立即依赖它。我们从不说新的存储库类。我们只提供接口,其他一切都由容器处理。例如,您可以说 IRepository 绑定到 DatabaseRepository 类。只需更改您的容器绑定即可。

这一切都是由于 IoC 容器中的绑定而发生的。这为您的应用程序提供了很大的灵活性。

此外,我们可以在容器中使用绑定命令可以为我们的对象提供生命周期,通常是这三个(Singleton、PerInstance、Scoped)。


推荐阅读