C# 控制反转-大规模示例

C# 控制反转-大规模示例,c#,inversion-of-control,C#,Inversion Of Control,我理解控制反转及其背后的概念。这一切都是有道理的,但是我的知识来源于那些只提供过于简单的模型和场景的文章和书籍 在我的例子中,我没有一个人在这种体系结构方面有丰富的经验,所以我没有办法验证我的设计。有没有什么好的例子说明国际奥委会的做法是正确的 此外,在我的例子中,我倾向于在单独的程序集中声明接口和模型,这些程序集由调用程序和实现程序导入(在启动时注入依赖项)。然而,这导致了很多项目,我有时很难证明仅仅为了解耦而让程序集实现两个或三个类是合理的。我一直在想,也许您可以只使用名称空间实现类似的隔离

我理解控制反转及其背后的概念。这一切都是有道理的,但是我的知识来源于那些只提供过于简单的模型和场景的文章和书籍

在我的例子中,我没有一个人在这种体系结构方面有丰富的经验,所以我没有办法验证我的设计。有没有什么好的例子说明国际奥委会的做法是正确的


此外,在我的例子中,我倾向于在单独的程序集中声明接口和模型,这些程序集由调用程序和实现程序导入(在启动时注入依赖项)。然而,这导致了很多项目,我有时很难证明仅仅为了解耦而让程序集实现两个或三个类是合理的。我一直在想,也许您可以只使用名称空间实现类似的隔离级别。

IoC在任何方面都不要求您拥有多个程序集-您可以拥有一个或多个您认为版本控制或其他外部原因所需的程序集

所有选项都有很好的论据,包括两个极端(每个程序集几个类到一个程序集),您需要选择一个

需要考虑的事项:

  • 可以为正在工作的代码建立快速的单元测试(即在1分钟内完成)-如果不考虑制作更小的程序集和更仔细地分离项目
  • 是否提供外部API?如果是,请考虑拆分“稳定接口”程序集和“经常更改实现/详细信息”程序集。
  • 您的团队是否需要程序集之间的代码物理分离以避免对象之间的紧密耦合,或者只需要约定就足够了(项目越少可能越容易管理)
  • 项目数量/规模对您使用的工具的影响