在一个使用DI框架的大型项目中(例如Ninject),在实现一个新的“服务”以找出可用作依赖关系的其他“服务”时,存在哪些选项。在使用DI之前,我注意到在我们的代码库中有一种倾向,即获得对可以访问所有可用功能的“上帝”对象的引用,然后Visual Studio的智能感知对于发现所有可用功能变得非常有用(显然这是方法是唯一可能的,因为首先有这样一个对象的建筑决策很差)。使用DI框架时,新服务如何知道其他服务可用?
我所能一些可能的答案,有兴趣什么为他人工作:
- 你应该知道你正在工作的不够好, 知道其他类/存在服务(例如整个系统,如果我有 静态类,我只需要知道他们存在能够 使用它们)。
- 您保持良好的 代码库的外部文档,以便所有的开发人员都能理解所有的类/服务 (这给我带来了很大的文档负担)。
- 创建一个API来查询DI容器(Ninject内核)中所有绑定的列表 ,以查看哪些服务可用(可能只有 单身人士)。这也可以作为构建系统的一部分完成, 在开发者 可以参考的每个构建上自动生成文档。
这对于其他开发者来说有没有问题?