【问题标题】:Why does Simple Injector discourage for scenario's other than dynamically loading assemblies?为什么除了动态加载程序集之外,Simple Injector 不鼓励其他场景?
【发布时间】:2017-11-10 15:24:10
【问题描述】:

在文档中解释了不鼓励打包。但是,我发现当我添加对我的服务项目的引用时,它允许我意外地使用实现而不是 VS 轻松建议的接口并添加 using 语句。

【问题讨论】:

  • 你有什么问题?
  • 为什么不鼓励打包方式?通过不添加引用,编译器强制不引入未计划的 d 依赖项
  • 请阅读thisthis。如果您在阅读这些参考资料后有任何疑问,请更新您非常清楚的内容,以便与阅读的信息进行比较。

标签: dependency-injection ioc-container simple-injector


【解决方案1】:

documentation 声明:

SimpleInjector.Packaging 专门设计用于从动态加载的程序集中加载配置。在其他情况下,不鼓励使用 Packaging。

对于非插件方案,所有容器注册都应尽可能靠近应用程序的入口点。此位置通常称为合成根。

试图阻止应用程序的入口点依赖于应用程序中的其他程序集是没有意义的,因为入口点根据定义是应用程序中最不稳定的部分,并且它将永远被用来将一切联系在一起。由于程序集依赖项是可传递的,因此它将始终依赖于应用程序中的所有程序集,除非您使用动态程序集加载。

如需更详细的讨论,请阅读Composition Root sectionDependency Injection in .NET, Second Edition 的免费摘录。

【讨论】:

    猜你喜欢
    • 2011-03-19
    • 2019-12-19
    • 2012-10-03
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    相关资源
    最近更新 更多