C# 什么是依赖注入?我为什么要使用它?

C# 什么是依赖注入?我为什么要使用它?,c#,dependency-injection,C#,Dependency Injection,可能重复: 我团队中的其他开发人员一直在谈论依赖注入。我在维基百科上查过它,但我仍然不知道它到底是什么,也不知道什么时候我想在我的设计中使用它。如果你有什么好的例子,说明你什么时候用过它,什么时候不应该用它,那会对我很有帮助。谢谢另一个可能有帮助的参考术语是控制反转 IoC或DI允许您指定一个接口,该接口必须由其他组件满足,而不是使用依赖项和关于您将永远与该应用程序一起使用的库的假设来构建您的软件,然后在运行时为正在执行的应用程序提供满足接口的组件的映射,这些组件通常位于服务容器中,该服务容器

可能重复:


我团队中的其他开发人员一直在谈论依赖注入。我在维基百科上查过它,但我仍然不知道它到底是什么,也不知道什么时候我想在我的设计中使用它。如果你有什么好的例子,说明你什么时候用过它,什么时候不应该用它,那会对我很有帮助。谢谢

另一个可能有帮助的参考术语是控制反转

IoC或DI允许您指定一个接口,该接口必须由其他组件满足,而不是使用依赖项和关于您将永远与该应用程序一起使用的库的假设来构建您的软件,然后在运行时为正在执行的应用程序提供满足接口的组件的映射,这些组件通常位于服务容器中,该服务容器作为某种服务解析服务提供满足IoC的服务

这种抽象使您能够更容易地用新版本,甚至是全新的支持技术替换不再满足组织需求的实现,从而减少更改的足迹,从而降低风险


是IoC容器的一个.Net实现。

另一个可能有帮助的参考术语是控制反转

IoC或DI允许您指定一个接口,该接口必须由其他组件满足,而不是使用依赖项和关于您将永远与该应用程序一起使用的库的假设来构建您的软件,然后在运行时为正在执行的应用程序提供满足接口的组件的映射,这些组件通常位于服务容器中,该服务容器作为某种服务解析服务提供满足IoC的服务

这种抽象使您能够更容易地用新版本,甚至是全新的支持技术替换不再满足组织需求的实现,从而减少更改的足迹,从而降低风险

是IoC容器的一个.Net实现。

您可能会发现这有助于理解整个概念

这样做的目的是帮助您将类解耦,以便每个类都可以独立使用或测试。

您可能会发现这有助于理解整个概念


这样做的目的是帮助您解耦类,以便每个单独的类都可以独立使用或测试。

我发现非常有说明性的示例包括java。请看一看围绕该主题的一系列文章。

我发现其中包含了非常好的java示例。看一看围绕该主题的一系列文章。

基本思想是,当一个对象需要其他对象来完成它的工作时,例如,数据库连接,而不是在内部创建该对象,该对象被注入到对象中,通常作为构造函数参数,或在使用对象之前设置的公共属性


这样做的好处是,可以从外部更改所用对象的值。如果将对象声明为接口,这一点尤其正确。这种方法的一个常见用途是用模拟对象代替具体对象进行单元测试。

基本思想是,当一个对象需要其他对象来完成它的工作时,例如,数据库连接,而不是在内部创建该对象,该对象被注入到该对象中,通常作为构造函数参数,或在使用对象之前设置的公共属性


这样做的好处是,可以从外部更改所用对象的值。如果将对象声明为接口,这一点尤其正确。这种方法的一个常见用途是用模拟对象代替具体对象进行单元测试。

从已经存在的答案开始怎么样:虽然这是一个好问题,但我确信它是重复的…从已经存在的答案开始怎么样:虽然这是一个好问题,但我确信它是重复的…重复的