WebForms的依赖注入框架是什么

gdp*_*gdp 8 c# asp.net dependency-injection webforms

我一直在研究学习依赖注入(我认为我现在已经掌握了基础知识),并且我希望将它实现到webform应用程序中.

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

我目前看过Spring.Net,Ninject,Unity和StructureMap,我倾向于在配置中没有偏好,无论是XML还是流畅的界面.然而,XML配置变得不那么有利了吗?

我遇到的大部分信息都与MVC环境中的依赖注入有关.并且还了解到一些框架(例如Structure Map)仅适用于使用2.0版或更早版本的webforms. 所以我需要考虑的事情是webforms是否会持续支持,以及为模式相对较新的人配置的简易性.

先感谢您.

Ste*_*ven 11

你选择哪个框架并不重要,唯一的技巧是允许类等System.Web.UI.Page类注入其依赖项.当您查看ASP.NET MVC时,您会看到他们专门设计它以使用依赖注入框架.ASP.NET WebForms显然不是为此而设计的.有些框架确实支持WebForms开箱即用,但对于其他所有框架来说,实现这一点并不困难.

在WebForms应用程序中,为您创建页面的"东西"就是PageHandlerFactory.你必须做的是覆盖PageHandlerFactory基类,在这种类型中实现一些注入行为,并在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>
Run Code Online (Sandbox Code Playgroud)

我写了一篇关于如何创建一个PageHandlerFactory使用Common Service Locator的文章,但是你可以选择你最喜欢的IoC框架并只改变一行代码来使它工作.

祝好运.