ASP.NET路由系统实现原理:HttpHandler的动态映射(5)

来源:未知 责任编辑:责任编辑 发表时间:2014-01-26 22:00 点击:

  43:     {
  44:         Uri uri = requestContext.HttpContext.Request.Url;
  45:         Uri baseAddress = new Uri(string.Format("{0}://{1}", uri.Scheme, uri.Authority));
  46:         Dictionary<string, string> variables = new Dictionary<string, string>();
  47:         foreach(var item in values)
  48:         {
  49:             variables.Add(item.Key, item.Value.ToString());
  50:         }
  51: 
  52:         //确定段变量是否被提供
  53:         foreach (var name in this.UriTemplate.PathSegmentVariableNames)
  54:         {
  55:             if(!this.UriTemplate.Defaults.Keys.Any(key=> string.Compare(name,key,true) == 0) &&
  56:                 !values.Keys.Any(key=> string.Compare(name,key,true) == 0))
  57:             {
  58:                 return null;
  59:             }
  60:         }
  61:         //确定查询变量是否被提供
  62:         foreach (var name in this.UriTemplate.QueryValueVariableNames)
  63:         {
  64:             if(!this.UriTemplate.Defaults.Keys.Any(key=> string.Compare(name,key,true) == 0) &&
  65:                 !values.Keys.Any(key=> string.Compare(name,key,true) == 0))
  66:             {
  67:                 return null;
  68:             }
  69:         }
  70: 
  71:         Uri virtualPath = this.UriTemplate.BindByName(baseAddress, variables);
  72:         string strVirtualPath = virtualPath.ToString().ToLower().Replace(baseAddress.ToString().ToLower(),"");
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 浅析.NET下XML数据访问新机制
  • asp.net 面试+笔试题目第1/2页
  • C# 邮件地址是否合法的验证
  • C#高级编程:数据库连接[1]
  • asp.net 设置GridView的选中行的实现代码
  • 经典C++程序1
  • IIS 自动回收导致后台定时器失效的问题解决
  • ASP.NET&#160;GridView列表代码示例
  • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1