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; }
}