System.Web.Routing命名空间代码解析(四)

Route解析中用到的实体类,一些以"Segment”为名的类

先看类图:

1.PathSegment和PathSubSegment两个类是基类,没有任何代码,分别代表Route规则中Url片段('/'分隔的结果)和Url片段中的子片段('{'和'}'分隔的结果)。

2.SeparatorPathSegment类代表Route规则的Url中的'/',也没有任何代码

3.ContentPathSegment类与SeparatorPathSegment类相对应

其有两个属性,Subsegments存储其所包含的PathSubsegment,IsCatchAll表示其是否包含通配的PathSubsegment

  internal sealed class ContentPathSegment : PathSegment
  {
    // Methods
    public ContentPathSegment(IList<PathSubsegment> subsegments)
    {
      this.Subsegments = subsegments;
    }
  
    // Properties
    public bool IsCatchAll
    {
      get
      {
        return
          this.Subsegments.Any(seg => ((seg is ParameterSubsegment) && ((ParameterSubsegment) seg).IsCatchAll));
      }
    }
  
    public IList<PathSubsegment> Subsegments { get; private set; }
  }

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索代码
, public
route
system.web.routing、system命名空间、解析带命名空间的xml、xml 解析去掉命名空间、数字电影命名解析,以便于您获取更多的相关知识。

时间: 2024-12-25 16:49:31

System.Web.Routing命名空间代码解析(四)的相关文章

System.Web.Routing命名空间代码解析(二) Routing类

Route类提供了五个属性,并且包装了一个ParsedRoute对象(即已解析过的Route规则),通过察看Route类的构造函数和Url属性的Set方法,我们可以知道的是:Route规则是在添加的时候就解析的,即,在Route类事例化的时候设置Url属性的时候就生成了ParsedRoute对象. 其他的四个属性分别是 :默认值,约束规则,自带数据,处理Handler. 可以把Router类对比和RouterData类作对比.... Route类的四个方法我将会在 Routing类(下)中介绍.

System.Web.Routing命名空间代码解析(三) RouteCollection类

RouteCollection类继承于Collection<RouteBase>并且包装了一个Dictionary<string, RouteBase>,于是它提供了二者的功能. 通过察看代码我们可以知道,Collection中和Dictionary中的数据并不完全相同. 1.有Name的Route既存于D中又存于C中,并且可以通过索引属性通过Name检索(参看Add方法) 2.没有Name的Route只存于C中 3.删除Route的时候,如果D中也存在它,则从D中也删除(参看Re

System.Web.Routing命名空间代码解析(一)

RouteBase类,RouteData类,RouteValueDictionary类 1.RouteBase是一个抽象基类,定义了两个功能: 1.从HttpContextBase中根据Route Map规则得到RouteData 2.得到虚拟路径数据(将在 Route 类(下) 中讲解) using System.Security.Permissions; using System.Web; namespace System.Web.Routing { [AspNetHostingPermis

返璞归真 asp.net mvc (2) - 路由(System.Web.Routing)

原文:返璞归真 asp.net mvc (2) - 路由(System.Web.Routing)[索引页][源码下载] 返璞归真 asp.net mvc (2) - 路由(System.Web.Routing) 作者:webabcd 介绍 System.Web.Routing - 此命名空间提供用于 URL 路由的类,通过该类可以使用不映射到物理文件的 URL IRouteHandler - 路由处理程序接口,自定义的路由处理程序都要实现这个接口 RequestContext - 封装所请求的路

System.Web.Routing入门及进阶(下)

上面介绍的是最简单的一种定义方式.当然我们可以建立更复杂的规则.其中就包括设定规则的默认值以及设定规则的正则表达式. UrlRouting高级应用 预计效果: 当我访问/a/b.aspx时就会转到Default.aspx?category=a&action=b在页面上显示 category:a action:b 亦如果我访问/chsword/xxxx.aspx就会转到Default.aspx?category=chsword&action=xxxx就会显示 category:chsword

System.Web.Routing入门及进阶(上)

System.Web.Routing已经作为一个程序集包含在.net3.5sp1中发布了.虽然我们并没有在3.5sp1中发现Asp.net Mvc的踪迹,但是亦以感觉到它离我们不远了. System.Web.Routing用于在Asp.net的Web应用程序中进行URLRouting. 所谓UrlRouting就是将一个地址映射为另一个地址,比如我访问/chsword/2008/08/27.html其实是访问了/chsword/article.aspx?y=2008&m=08&d=27这个

System.Web.Routing入门及进阶_实用技巧

UrlRouting高级应用 预计效果: 复制代码 代码如下: 当我访问/a/b.aspx时就会转到Default.aspx?category=a&action=b在页面上显示 category:a action:b 亦如果我访问/chsword/xxxx.aspx就会转到Default.aspx?category=chsword&action=xxxx就会显示 category:chsword action:xxxx 如果访问/chsword/就会转到 Default.aspx?cate

System.Web.Routing入门及进阶 上篇

System.Web.Routing已经作为一个程序集包含在.net3.5sp1中发布了.虽然我们并没有在3.5sp1中发现Asp.net Mvc的踪迹,但是亦以感觉到它离我们不远了. System.Web.Routing用于在Asp.net的Web应用程序中进行URLRouting.   所谓UrlRouting就是将一个地址映射为另一个地址,比如我访问/chsword/2008/08/27.html其实是访问了/chsword/article.aspx?y=2008&m=08&d=27

System.Web.Routing入门及进阶 下篇

  System.Web.Routing入门及进阶 上篇 上面介绍的是最简单的一种定义方式.当然我们可以建立更复杂的规则.其中就包括设定规则的默认值以及设定规则的正则表达式. UrlRouting高级应用 预计效果: 当我访问/a/b.aspx时就会转到Default.aspx?category=a&action=b在页面上显示 category:a action:b 亦如果我访问/chsword/xxxx.aspx就会转到Default.aspx?category=chsword&act