我基本上了解 IoC 框架的工作原理,但我不太明白基于代码的配置应该如何工作。通过 XML,我了解如何将新程序集添加到已部署的应用程序,然后更改 XML 中的配置以包含它。如果应用程序已经部署(即以某种形式编译),那么如何在不重新编译的情况下更改代码?或者这就是人们所做的,只需更改代码中的配置并重新编译?
最佳答案
热交换依赖项并不是使用 DI 容器的唯一目标。
依赖注入(inject) (DI) 是帮助我们开发松耦合代码的原则。松散耦合仅意味着我们可以彼此独立地改变消费者和服务。 我们如何在这个级别上没有解决这个问题。
DI 容器 是有助于一起使用线路依赖项的框架。它们或多或少只是帮助我们应用 DI 模式的实用程序库。再一次,如何我们配置容器与我们如何使用这些依赖项是垂直的。
XML 配置 允许我们更改容器配置无需重新编译。代码作为配置没有。
但是,在不重新编译的情况下交换依赖关系通常只与所有松耦合代码的小子集相关。对于其余部分,基于约定的方法更为有效,因为它往往不那么脆弱。参见 here获取更多信息。
关于xml - IoC/依赖注入(inject) - 请解释代码与 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2512316/