gpt4 book ai didi

c# - 什么依赖注入(inject)框架与 WebForms

转载 作者:太空狗 更新时间:2023-10-29 18:25:52 26 4
gpt4 key购买 nike

我一直在研究学习依赖注入(inject)(我想我现在已经掌握了基础知识)并希望将其实现到 Web 表单应用程序中。

我的问题是,我应该为 webforms 项目使用什么依赖注入(inject)框架,还是什么最适合你的问题?

我目前看过 Spring.Net、Ninject、Unity 和 StructureMap,我倾向于在配置上没有偏好,无论是 XML 还是流式接口(interface)。然而,XML 配置变得越来越不受欢迎了吗?

我遇到的大部分信息都与 MVC 环境中的依赖注入(inject)有关。并且还阅读了一些框架,例如 Structure Map only work with webforms using version 2.0 or earlier.所以我需要考虑的事情是 webforms 是否会得到持续支持,以及对于相对不熟悉该模式的人来说配置是否容易。

提前谢谢你。

最佳答案

您选择哪个框架并不重要,唯一的诀窍是允许将诸如 System.Web.UI.Page 类之类的类与其依赖项一起注入(inject)。当您查看 ASP.NET MVC 时,您会发现他们专门设计它以与依赖注入(inject)框架配合使用。 ASP.NET WebForms 显然不是为此而设计的。一些框架确实支持开箱即用的 WebForms,但对于所有其他框架,实现这一点并不难。

在 WebForms 应用程序中,为您创建页面的“东西”是 PageHandlerFactory。您必须做的是重写 PageHandlerFactory 基类,在此类型中实现一些注入(inject)行为,并在 web.config 中注册此新类型:

<?xml version="1.0"?>
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="*.aspx"
type="MyPageHandlerFactory, MyAsm"/>
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="CSLPageHandler" verb="*" path="*.aspx"
type="MyPageHandlerFactory, MyAsm"/>
</handlers>
</system.webServer>
</configuration>

我写了an article关于如何创建 PageHandlerFactory 以使用 Common Service Locator ,但您可以选择自己喜欢的 IoC 框架,只需更改一行代码即可使其正常工作。

祝你好运。

关于c# - 什么依赖注入(inject)框架与 WebForms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4292055/

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