Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dependency injection 在类之间的单个命名空间中使用IOC_Dependency Injection_Inversion Of Control_Autofac - Fatal编程技术网

Dependency injection 在类之间的单个命名空间中使用IOC

Dependency injection 在类之间的单个命名空间中使用IOC,dependency-injection,inversion-of-control,autofac,Dependency Injection,Inversion Of Control,Autofac,我有一个名称空间,它包含许多类(在各种文件夹结构中)。然而,这些类中有很多是相互依赖的 即使在单个名称空间中,这里是否也是使用IOC库(例如Autofaq)的地方 非常感谢理想情况下,应用程序中(靠近入口点)应该只有一个组件连接在一起的“合成根”。这将是唯一一个使用autofac之类的工具的地方 单个类不应依赖于特定的依赖项注入框架。它们只应符合一般依赖项注入原则,即通过构造函数参数获取依赖项。库也不应该依赖于DI框架 (并非所有的DI框架都能做到这一点。有些要求您将属性添加到类中。您可以考虑规

我有一个名称空间,它包含许多类(在各种文件夹结构中)。然而,这些类中有很多是相互依赖的

即使在单个名称空间中,这里是否也是使用IOC库(例如Autofaq)的地方


非常感谢理想情况下,应用程序中(靠近入口点)应该只有一个组件连接在一起的“合成根”。这将是唯一一个使用autofac之类的工具的地方

单个类不应依赖于特定的依赖项注入框架。它们只应符合一般依赖项注入原则,即通过构造函数参数获取依赖项。库也不应该依赖于DI框架


(并非所有的DI框架都能做到这一点。有些要求您将属性添加到类中。您可以考虑规则的例外)。

< P>理想地,在应用程序(靠近入口点)中,只有一个“组成根”,其中组件被连接在一起。这将是唯一一个使用autofac之类的工具的地方

单个类不应依赖于特定的依赖项注入框架。它们只应符合一般依赖项注入原则,即通过构造函数参数获取依赖项。库也不应该依赖于DI框架


(并非所有的DI框架都能做到这一点。有些要求您将属性添加到类中。您可以考虑规则的例外。)/P>依赖注入是一种构建松散耦合应用程序的模式。如果您的类之间有很多交叉引用(即,这些类是强耦合的),我建议您首先对这些引用进行分离,而不是向它们扔工具。名称空间与依赖注入无关。即使所有类都在一个名称空间中,也可以使用依赖项注入。然而,它们的存在是有原因的。它们帮助您分组类,从而保持代码库的可维护性。谢谢大家。Sebestina,我猜你是指接口的代码等?针对抽象(接口/抽象基类等)进行开发是DI概念的一部分。如果你想对整个主题有一个非常好的介绍,我建议你看看@MarkSeemann的书.NET中的依赖注入。依赖注入是一种构建松散耦合应用程序的模式。如果您的类之间有很多交叉引用(即,这些类是强耦合的),我建议您首先对这些引用进行分离,而不是向它们扔工具。名称空间与依赖注入无关。即使所有类都在一个名称空间中,也可以使用依赖项注入。然而,它们的存在是有原因的。它们帮助您分组类,从而保持代码库的可维护性。谢谢大家。Sebestina,我猜你是指接口的代码等?针对抽象(接口/抽象基类等)进行开发是DI概念的一部分。如果你想对整个主题做一个非常好的介绍,我建议你看看@MarkSeemann的书《在.NET中的依赖注入》。