1/1页1 跳转到查看:267
发新话题 回复该主题

使用Spring.Net对Web页面进行依赖注入

使用Spring.Net对Web页面进行依赖注入

今天看到这篇文章 Unity&WebForm(1): 自定义IHttpHandlerFactory使用Unity对ASP.NET Webform页面进行依赖注入,这是一个很好的思路,自定义IHttpHandlerFactory结合Unity来对web页面进行依赖注入,大家可以去看看。但是回复中有人提出了问题,对于web site类型的站点,在配置文件中无法指定要注入类型和所在的程序集,也就无法使用Unity。´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
  现在的Unity并不支持对web页面的依赖注入,上文的作者也是利用一定的技巧来解决的。其实Spring.Net已经支持对Web页面的依赖注入,而且并不用修改代码,只需要在配置文件中配置就行。而且它还支持对自定义的 httpHandler,httpModule的依赖注入,不能不说它的功能强大。´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
  下面具体介绍如何使用Spring.Net:´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
1. 添加Spring的SectionGroup´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
<sectionGroup name="spring">´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
      <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
</sectionGroup> ´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
2. 添加HttpHandler配置´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
<add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
3. 添加HttpModule配置(如果不添加的话,会有异常)´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
4. 最后配置如何依赖注入´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
<spring>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
    <context>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
      <resource uri="config://spring/objects"/>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
    </context>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
    <objects xmlns="http://www.springframework.net">´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
      <object type="Default.aspx">´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
        <property name="Service" ref="myService"/>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
      </object>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
      <object id="myService" type="Services.MyService, Services">´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
      </object>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
    </objects>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
  </spring>´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
object的type属性表明你要对哪个页面进行注入,property的name属性是该页面中被注入的Property的名字,ref就指向了你想注入的实际类型。´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
由此可见,使用Spring.Net可以很方便的对web页面进行依赖注入。´B™¡ÆÕ2Tuäforum.entlib.net.cnp AÕ#]KXòç
追随理想和美人而生活!

TOP

 
1/1页1 跳转到
发表新主题 回复该主题