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
- TablePattern.cs
- RuleValidation.cs
- SafeRightsManagementPubHandle.cs
- DescriptionAttribute.cs
- Bidi.cs
- QueryOutputWriter.cs
- StringArrayConverter.cs
- TargetConverter.cs
- SelectedGridItemChangedEvent.cs
- SessionConnectionReader.cs
- RouteTable.cs
- Serializer.cs
- AppDomainGrammarProxy.cs
- SoapIgnoreAttribute.cs
- TextMessageEncoder.cs
- basecomparevalidator.cs
- SqlUDTStorage.cs
- XmlDocument.cs
- DataSourceCacheDurationConverter.cs
- Constants.cs
- _Rfc2616CacheValidators.cs
- XmlCodeExporter.cs
- WS2007HttpBindingCollectionElement.cs
- EncodingInfo.cs
- Lasso.cs
- InputReportEventArgs.cs
- SqlClientFactory.cs
- EventHandlersDesigner.cs
- FrameworkElement.cs
- TextAutomationPeer.cs
- UnsupportedPolicyOptionsException.cs
- Transform3DCollection.cs
- MessageBox.cs
- ToolbarAUtomationPeer.cs
- DbParameterHelper.cs
- InkCanvasInnerCanvas.cs
- Splitter.cs
- SiteMapDataSource.cs
- EntityProviderServices.cs
- FloaterBaseParaClient.cs
- ReadOnlyMetadataCollection.cs
- MimeTypeMapper.cs
- FontStretch.cs
- Msec.cs
- GroupBoxAutomationPeer.cs
- HtmlInputReset.cs
- RoutedPropertyChangedEventArgs.cs
- CancellationToken.cs
- CodeGenerator.cs
- StateManager.cs
- ArgumentNullException.cs
- WorkflowServiceAttributesTypeConverter.cs
- Clipboard.cs
- ProgressBarRenderer.cs
- UserMapPath.cs
- BuildResultCache.cs
- SynchronizationContextHelper.cs
- ResponseStream.cs
- _CacheStreams.cs
- GeometryHitTestParameters.cs
- HandlerBase.cs
- DescriptionAttribute.cs
- RankException.cs
- HttpChannelHelper.cs
- PhysicalAddress.cs
- DataBinding.cs
- AutomationPatternInfo.cs
- DbProviderFactories.cs
- DBNull.cs
- HttpProcessUtility.cs
- SecurityElement.cs
- HtmlTable.cs
- FormattedText.cs
- ContentElementAutomationPeer.cs
- OdbcEnvironment.cs
- ParserHooks.cs
- OperationCanceledException.cs
- DynamicResourceExtension.cs
- MessageContractMemberAttribute.cs
- XmlSchemaSimpleTypeRestriction.cs
- DockAndAnchorLayout.cs
- EffectiveValueEntry.cs
- DispatcherHookEventArgs.cs
- WeakHashtable.cs
- AudioSignalProblemOccurredEventArgs.cs
- CompositeDuplexElement.cs
- WebPartConnectionsDisconnectVerb.cs
- HelpProvider.cs
- BasicExpressionVisitor.cs
- MouseEvent.cs
- ConfigurationCollectionAttribute.cs
- ObjectTypeMapping.cs
- Base64Decoder.cs
- ExpressionConverter.cs
- SspiWrapper.cs
- DataGridRow.cs
- SmiRequestExecutor.cs
- SelectionChangedEventArgs.cs
- Messages.cs
- TemplatePagerField.cs