44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
|
namespace System.Web.Routing {
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
|
|||
|
// Represents a segment of a URL that is not a separator. It contains subsegments such as literals and parameters.
|
|||
|
internal sealed class ContentPathSegment : PathSegment {
|
|||
|
public ContentPathSegment(IList<PathSubsegment> subsegments) {
|
|||
|
Subsegments = subsegments;
|
|||
|
}
|
|||
|
|
|||
|
public bool IsCatchAll {
|
|||
|
get {
|
|||
|
//
|
|||
|
return Subsegments.Any<PathSubsegment>(seg => (seg is ParameterSubsegment) && (((ParameterSubsegment)seg).IsCatchAll));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public IList<PathSubsegment> Subsegments {
|
|||
|
get;
|
|||
|
private set;
|
|||
|
}
|
|||
|
|
|||
|
#if ROUTE_DEBUGGING
|
|||
|
public override string LiteralText {
|
|||
|
get {
|
|||
|
List<string> s = new List<string>();
|
|||
|
foreach (PathSubsegment subsegment in Subsegments) {
|
|||
|
s.Add(subsegment.LiteralText);
|
|||
|
}
|
|||
|
return String.Join(String.Empty, s.ToArray());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override string ToString() {
|
|||
|
List<string> s = new List<string>();
|
|||
|
foreach (PathSubsegment subsegment in Subsegments) {
|
|||
|
s.Add(subsegment.ToString());
|
|||
|
}
|
|||
|
return "[ " + String.Join(", ", s.ToArray()) + " ]";
|
|||
|
}
|
|||
|
#endif
|
|||
|
}
|
|||
|
}
|