1
162
团结只是国际奥委会的“容器”。谷歌结构地图,并尝试它代替。我想,当国际奥委会的东西对你来说是新的时候,摸索会容易一些。 基本上,如果您了解IOC,那么您就知道您所做的是反转对象创建时的控件。 没有国际奥委会:
带IOC集装箱:
如果没有IOC,依赖于imyservice的类必须更新要使用的服务的具体版本。这有很多不好的原因(您已经将类耦合到了imyservice的特定具体版本,您不能轻松地对其进行单元测试,也不能轻松地更改它,等等)。 使用IOC容器,您可以“配置”容器来解决这些依赖关系。因此,对于基于构造函数的注入方案,只需将接口传递给imyservice依赖项到构造函数。当您用容器创建myClass时,容器将为您解析imyservice依赖项。 使用structuremap,配置容器如下所示:
所以你所做的是告诉容器,“当有人请求imyservice时,给他们一个someconcreteservice的副本。”你还指定当有人请求myclass时,他们会得到一个具体的myclass。 这就是IOC容器真正做到的。它们可以做得更多,但这就是它的核心——它们为您解决依赖关系,所以您不必(而且您不必在代码中使用“new”关键字)。 最后一步:当您创建MyClass时,您将执行以下操作:
希望有帮助。请随时给我发电子邮件。 |
2
35
我刚刚看了大卫海登30分钟的Unity Dependency Injection IOC屏幕,觉得这是一个很好的例子解释。以下是演示说明中的一个片段: 屏幕显示了Unity IOC的几种常见用法,例如:
|
3
30
Unity是一个库,与其他许多库一样,它允许您获取请求类型的实例,而不必自己创建。这么说。
当类型icalcutator被请求时,您将使用一个类似于Unity的库来注册要返回的计算器aka ioc(控制反转)(这个例子是理论上的,技术上不正确)。
所以现在当你想要一个计算器的实例时,你只是…
IOC库通常可以配置为在每次解析类型时保存单个实例或创建新实例。 现在让我们假设你有一个类,它依赖于一个计算器来呈现你可以拥有的。
并且可以设置库,在创建对象时将其注入到构造函数中。 所以DI或依赖注入意味着注入其他对象可能需要的任何对象。 |
4
28
这个家伙Wilcoxtutorials为面向初学者的Unity容器提供了一个极好的演示。 第1部分: http://www.youtube.com/watch?v=CWwe9Z0Gyew 第2部分: http://www.youtube.com/watch?v=PsIbevgzQQE 不到半个小时,你就会明白基本原理! |
5
9
团结是国际奥委会。IOC的要点是抽象类型本身之外的类型之间的依赖关系连接。这有几个优点。首先,它是集中完成的,这意味着当依赖关系发生变化时,不必更改很多代码(单元测试可能就是这样)。 此外,如果连接是使用配置数据而不是代码完成的,则实际上可以在部署后重新连接依赖项,从而在不更改代码的情况下更改应用程序的行为。 |
6
5
MSDN有 Developer's Guide to Dependency Injection Using Unity 这可能有用。 开发人员指南从什么是依赖注入的基础开始,并以如何使用Unity进行依赖注入的示例继续。截至2014年2月,《开发商指南》涵盖了2013年4月发布的Unity 3.0。 |
7
2
我将介绍ASP.NET Web API 2中的大多数依赖项注入示例。
在DiautoV2Controller.cs中使用自动注射机构
在div2controller.cs中,所有内容都将从依赖配置解析程序类注入
配置依赖关系解析程序
|
StayCool · Ninject。扩展。约定不会绑定单个接口 6 年前 |
Nickso · 通用属性和IoC(Autofac)问题 7 年前 |
LightCC · 如何在C中设置DI/IoC和/或工厂模式设计# 7 年前 |
Eitan · 使用Castle动态代理拦截所有依赖项 7 年前 |