gpt4 book ai didi

asp.net - 依赖注入(inject)陷阱

转载 作者:行者123 更新时间:2023-12-04 06:48:10 24 4
gpt4 key购买 nike

有没有人在 www 上有一个链接列表以获得一个好的 DI 陷阱列表?
我一直在尝试在 asp.net webforms 应用程序中使用 DI 注入(inject)控件,发现在递归构建时 ViewState 丢失了。
列出开发人员在应用程序中实现 IoC/DI 之前需要注意的问题的文章列表也会很有帮助。

最佳答案

DI 本身没有陷阱。或者更准确地说,这就像枚举一般编程陷阱,就像传递一个空引用然后不检查它。

on recursive build up ViewState is lost



正如一些容器所说的那样,“堆积”通常是一个坏主意,应尽可能避免。看看 Windsor FAQ出于一些反对积累的充分理由。这适用于所有 IoC 容器。

特别是,在您的情况下,似乎正在发生的事情是在控件的 LoadViewState()(或页面的 LoadPageStateFromPersistenceMedium())之后发生堆积,因此它使 View 状态无效。也许您的 IoC 容器提供了一个基本控制类,它已经处理了这个问题,而您忘记了继承它。

恕我直言,在 WebForms 中执行 DI 太难了(例如这种情况),我更喜欢求助于服务位置(仅适用于 WebForms 页面和控件!)。简单,不需要奇怪的黑客攻击。

现在, 国际奥委会 + DI 可能有一些问题,例如生命周期/范围问题。 Igor Brejc covers this very thoroughly in this article .您必须牢记这一点,尤其是在具有大量组件的复杂/大型应用程序中。

关于asp.net - 依赖注入(inject)陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3491400/

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