转贴:你知道Page继承了多少接口吗?
大宇_ 2009-02-23 02:23:23 你知道Page继承了多少接口吗?
这个问题是我一个朋友去面试的时候被问到的,说实在的,开发了很多页面程序,对于 Page 已经不再陌生,可是你能说得出来吗?而且要解释一下,这些接口的功能是做什么的。
IHttpHandler ,此接口的作用为: 定义 ASP.NET 为使用自定义 HTTP 处理程序同步处理 HTTP Web 请求而实现的协定。
INamingContainer ,此接口的作用为: 标识在 Page 对象的控件层次结构内创建新 ID 命名空间的容器控件。这仅是一个标记接口。
IComponent, 此接口作用:提供所有组件所需的功能,它用作公共语言运行库中所有组件的基类。
IDisposable, 此接口作用:定义一种释放分配的非托管资源的方法。
IP***rAccessor, 此接口作用:定义 ASP.NET 服务器控件必须实现以识别何时分析元素( HTML 或 XML )的方法。
IDataBindingsAccessor, 此接口作用:允许在设计时访问控件的数据绑定表达式集合。
以上是 Page 继承的接口及作用,下面我谈一些自己的看法。
1) 由于 WebControl 没有实现接口 IHttpHandle ,所以你不能请求 .ascx 结束的文件,那也就是说如果你想 拥 有特殊的处理模块,那这个模块就必须要实现 IHttpHandle 接口,其实看一下 machine.config 文件,就可以看到有 httpHandle 这个节点,所以你的那个模块也要相应的添加到 httpHandle 节点下面才会有效果出现。
2) 剩余的接口没有太多的体会,工作中用到的比较少,就交给大家去琢磨吧!
最后,我想说的是,有些东西不要只会使用,使用的同时要揪其原因,如果你一直保持这样的心态,累积下来,你对于相同问题的看法就会有新的看法。
这是转载的一遍文章,虽然不怎么样,但确实是提到了关键的地方,.NET框架给我们提供了太多的帮助,作为程序员,我相信喜欢上.NET的原因其实不仅仅是它足够好,效率高(个人认为执行效率要比JAVA高,可以批我,但不准骂人),可能哈,也许,是我们太懒惰,中国人也许就有这样的劣根,太满足于现状,当然,对于一般企业级的应用,对程序执行效率什么的要求不是很高,更重要的是要求开发效率(没办法,现在硬件好了^o^。这样下去,慢慢的就失去了那种钻研精神。但对于要求高效率的WEB开发,可不能这样搞了,其实一般的页面实现可以直接实现IHttpHandler ,或者加上IDisposable接口,足以满足服务端和客户端的交互(加上现在流行的AJAX方式),用这样的方式测试一下,相信结构会另你大吃一惊,速度那是数以倍计的提高。特别是对于热衷于AJAX技术的朋友,那就更没的必要使用原有的ASPX页面。采用这样的方式提高效率,将会是一个很好的选择,顺便说一下,其实这也是X3BLOG所有服务器与客户端交互全部采用这样的方式实现的原因,我们希望做一个优秀的产品奉贤给大家。希望我们共同学习,共同进步。