2012-01-07 47 views
1

我有一个名称空间,其中包含许多类(在各种文件夹结构中)。然而,很多这些类都依赖于对方。在类之间的单个名称空间中使用IOC

即使在单个命名空间中,这是一个使用IOC库(例如Autofaq)的地方吗?

感谢

+4

依赖注入是建立_loosely coupled_应用的模式。如果你的类之间有很多交叉引用(即这些类​​是强耦合的),我会建议首先解开这些引用,而不是向它们抛出一个工具。 – 2012-01-07 21:05:27

+3

命名空间与依赖注入无关。即使所有类都在单个命名空间中,也可以使用依赖注入。然而,命名空间是有原因的。他们帮助您分组课程,从而保持您的代码基础可维护。 – Steven 2012-01-07 21:56:50

+0

谢谢大家。 Sebestian,我想你的意思是接口等代码? – dotnetdev 2012-01-08 01:29:25

回答

1

理想情况下,你应该在应用程序中(靠近入口点),其中的部件连接在一起只有一个“组成的根”。那将是唯一一个使用类似autofac的地方。

单独的类不应该依赖于特定的依赖注入框架。它们应该只符合通用的依赖注入原则,即通过构造函数参数来进行依赖。图书馆也不应该依赖于DI框架。

(并非所有DI框架,使之成为可能。有些要求你添加属性的类,你可以考虑的例外规则。)

相关问题