当前位置:IT168首页 > 技术开发 > 概述
[收藏此页] [打印] [推荐] [评论]

另类的动态加载用户控件

责任编辑:nancy作者:ITPUB论坛   2008-07-07   
【内容导航】
文本Tag: 微软 sql

【IT168技术文档】

  建立一个实现了接口IHttpHandlerFactory的类.
  IHttpHandlerFactory 类型公开了以下成员。
  方法 :
  GetHandler 返回实现 IHttpHandler 接口的类的实例。
  ReleaseHandler 使工厂可以重用现有的处理程序实例。
public class WebPageHandlerFactory : IHttpHandlerFactory { public virtual IHttpHandler GetHandler(HttpContext context, string requestType, string url, string path) { if (IsExistedPage(path)) { return PageParser.GetCompiledPageInstance(url, path, context); } if (!path.ToLower().EndsWith(".aspx")) { path = Path.Combine(path, "webform2.aspx"); } url = ReplaceUrl(url); path = ReplaceUrl(path); return PageParser.GetCompiledPageInstance(url, path, context); } /**//// <summary> /// 判断当前请求的URL是否真实存在 /// </summary> /// <param name="path">请求URL的相对路径</param> /// <returns></returns> private bool IsExistedPage(string path) { //首页是已经存在的 if (path.ToLower().IndexOf("webform2.aspx") > 0) { return true; } return false; } /**//// <summary> /// 把实际不存在的页面名称转换成已经真实存在的default.aspx /// 例如:default2.aspx实际不存在,则把default2.aspx转换成default.aspx /// </summary> /// <param name="input">当前请求的但实际并不存在的URL 例如:default2.aspx</param> /// <returns></returns> private string ReplaceUrl(string input) { // Regex search and replace RegexOptions options = RegexOptions.None; Regex regex = new Regex(@"\w+.aspx", options); string replacement = @"webform2.aspx"; string result = regex.Replace(input, replacement); return result; } public virtual void ReleaseHandler(IHttpHandler handler) { } }
上一页
1
23下一页
收藏到: 添加到“百度搜藏”添加到“QQ书签”添加到“Google书签”添加到“Yahoo收藏”添加到“和讯网摘”
【内容导航】
本文欢迎转载,转载请注明:转载自IT168 [ http://www.it168.com/ ]
本文链接:http://tech.it168.com/d/2008-07-07/200807071413862.shtml
技术开发相关文章  
  • 暂无
友情推介