Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / UriTemplatePathSegment.cs / 2 / UriTemplatePathSegment.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System { using System.Collections.Specialized; using System.Diagnostics; using System.ServiceModel.Web; using System.Text; // This represents a Path segment, which can either be a Literal, a Variable or a Compound [DebuggerDisplay("Segment={originalSegment} Nature={nature}")] abstract class UriTemplatePathSegment { readonly bool endsWithSlash; readonly UriTemplatePartType nature; readonly string originalSegment; protected UriTemplatePathSegment(string originalSegment, UriTemplatePartType nature, bool endsWithSlash) { this.originalSegment = originalSegment; this.nature = nature; this.endsWithSlash = endsWithSlash; } public bool EndsWithSlash { get { return this.endsWithSlash; } } public UriTemplatePartType Nature { get { return this.nature; } } public string OriginalSegment { get { return this.originalSegment; } } public static UriTemplatePathSegment CreateFromUriTemplate(string segment, UriTemplate template) { // Identifying the type of segment - Literal|Compound|Variable switch (UriTemplateHelpers.IdentifyPartType(segment)) { case UriTemplatePartType.Literal: return UriTemplateLiteralPathSegment.CreateFromUriTemplate(segment, template); case UriTemplatePartType.Compound: return UriTemplateCompoundPathSegment.CreateFromUriTemplate(segment, template); case UriTemplatePartType.Variable: if (segment.EndsWith("/", StringComparison.Ordinal)) { string varName = template.AddPathVariable(UriTemplatePartType.Variable, segment.Substring(1, segment.Length - 3)); return new UriTemplateVariablePathSegment(segment, true, varName); } else { string varName = template.AddPathVariable(UriTemplatePartType.Variable, segment.Substring(1, segment.Length - 2)); return new UriTemplateVariablePathSegment(segment, false, varName); } default: Fx.Assert("Invalid value from IdentifyStringNature"); return null; } } public abstract void Bind(string[] values, ref int valueIndex, StringBuilder path); public abstract bool IsEquivalentTo(UriTemplatePathSegment other, bool ignoreTrailingSlash); public bool IsMatch(UriTemplateLiteralPathSegment segment) { return IsMatch(segment, false); } public abstract bool IsMatch(UriTemplateLiteralPathSegment segment, bool ignoreTrailingSlash); public abstract void Lookup(string segment, NameValueCollection boundParameters); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Calendar.cs
- TextBoxLine.cs
- GenericEnumerator.cs
- TraceSection.cs
- ItemDragEvent.cs
- XhtmlConformanceSection.cs
- EntityContainer.cs
- RequestCacheEntry.cs
- GridViewDesigner.cs
- HttpRequestCacheValidator.cs
- EventArgs.cs
- DecimalFormatter.cs
- FontSizeConverter.cs
- DateTimeSerializationSection.cs
- AlternationConverter.cs
- TypeUsageBuilder.cs
- StylusShape.cs
- Paragraph.cs
- MultiViewDesigner.cs
- MouseCaptureWithinProperty.cs
- RewritingProcessor.cs
- ProcessModelInfo.cs
- HwndProxyElementProvider.cs
- OperandQuery.cs
- EntityDataSourceContextCreatedEventArgs.cs
- TokenBasedSet.cs
- XmlBoundElement.cs
- TraceSwitch.cs
- BooleanAnimationBase.cs
- NTAccount.cs
- TableLayoutSettings.cs
- InputProviderSite.cs
- ProfileGroupSettingsCollection.cs
- SynchronizedInputHelper.cs
- Section.cs
- NoneExcludedImageIndexConverter.cs
- _CookieModule.cs
- SystemIPGlobalStatistics.cs
- ProcessProtocolHandler.cs
- JoinTreeSlot.cs
- SoapSchemaMember.cs
- PathGeometry.cs
- IApplicationTrustManager.cs
- AddInPipelineAttributes.cs
- MimeTypeMapper.cs
- FontUnitConverter.cs
- InkCanvasFeedbackAdorner.cs
- KeyInstance.cs
- ExpressionLink.cs
- StreamResourceInfo.cs
- DataControlField.cs
- Token.cs
- grammarelement.cs
- DbProviderFactory.cs
- SchemaElementLookUpTable.cs
- SoapUnknownHeader.cs
- PreservationFileReader.cs
- Nullable.cs
- ToolStripSystemRenderer.cs
- TraceEventCache.cs
- FileSystemEventArgs.cs
- TableRowCollection.cs
- ParameterBuilder.cs
- BindToObject.cs
- AuthenticationException.cs
- DataRecordInternal.cs
- DeflateEmulationStream.cs
- PageWrapper.cs
- PopupRootAutomationPeer.cs
- SystemBrushes.cs
- InkCanvasFeedbackAdorner.cs
- BufferedStream.cs
- LocatorManager.cs
- TextBounds.cs
- DBSchemaRow.cs
- ISFClipboardData.cs
- ListBoxDesigner.cs
- TemplateBindingExpression.cs
- CodeAccessPermission.cs
- Queue.cs
- XmlSchema.cs
- ObjectConverter.cs
- RawStylusActions.cs
- WindowPattern.cs
- WebBrowserProgressChangedEventHandler.cs
- RepeatEnumerable.cs
- TabletDevice.cs
- DescendentsWalkerBase.cs
- BitmapImage.cs
- BinaryFormatterSinks.cs
- SystemWebSectionGroup.cs
- RangeBaseAutomationPeer.cs
- MouseOverProperty.cs
- _StreamFramer.cs
- PropertyPathWorker.cs
- AnyAllSearchOperator.cs
- IdentityNotMappedException.cs
- DocumentReferenceCollection.cs
- QilTypeChecker.cs
- ToolStripItemRenderEventArgs.cs