gpt4 book ai didi

c# - 为什么 IDependencyResolver 与 System.Web 紧密耦合?

转载 作者:行者123 更新时间:2023-11-30 13:35:52 25 4
gpt4 key购买 nike

为什么 IDependencyResolverSystem.Web 程序集(MvcHttp ) 在 .NET 框架中?

DI 系统的目标不是应该提供一种不可知的方式来为客户提供依赖项吗?如果我想在一个不应引用与 System.Web 相关的任何内容 的项目中使用 IDependencyResolver 怎么办?

编辑:
这与其说是关于如何做的请求,不如说是一个哲学问题,因为我知道还有其他选择,例如开源 DI 库。

最佳答案

The goal of a DI system isn't that it should provide an agnostic way of serving dependencies to a customer ?

这是正确的,但在这种情况下,IDependencyResolver 特定于定义它的库。正是该库的 DI 抽象允许一个不可知的扩展点来解决依赖关系。我相信这是抽象的最初目标。

它并没有真正被其他库独立重用,这很明显,MVC 都有两个版本。和 Web API .尽管它们具有相同的名称和相同的用途,但它们的实现略有不同。

它还演示了 Conforming Container Mark Seemann 在这篇文章中提到的反模式,其中文章还提到了上述抽象作为 .NET 一致性容器的已知示例。甚至我首选的使用 IServiceProvider 的方法也列入了列表。

What if I want to use IDependencyResolver in a project that should not reference anything related to System.Web ?

我的建议是不要使用 System.Web 中的 IDependencyResolver。我还要补充一点,最重要的是,应特别注意遵循正确的设计模式,确保人们了解概念以及应在何处应用或避免应用这些概念。

关于c# - 为什么 IDependencyResolver 与 System.Web 紧密耦合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45080456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com