Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / UriTemplateMatch.cs / 4 / UriTemplateMatch.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System { using System.Collections.ObjectModel; using System.Collections.Specialized; using System.ServiceModel.Web; using System.Web; public class UriTemplateMatch { Uri baseUri; NameValueCollection boundVariables; object data; NameValueCollection queryParameters; CollectionrelativePathSegments; Uri requestUri; UriTemplate template; Collection wildcardPathSegments; int wildcardSegmentsStartOffset = -1; public UriTemplateMatch() { } public Uri BaseUri // the base address, untouched { get { return this.baseUri; } set { this.baseUri = value; } } public NameValueCollection BoundVariables // result of TryLookup, values are decoded { get { if (this.boundVariables == null) { this.boundVariables = new NameValueCollection(); } return this.boundVariables; } } public object Data { get { return this.data; } set { this.data = value; } } public NameValueCollection QueryParameters // the result of UrlUtility.ParseQueryString (keys and values are decoded) { get { if (this.queryParameters == null) { PopulateQueryParameters(); } return this.queryParameters; } } public Collection RelativePathSegments // entire Path (after the base address), decoded { get { if (this.relativePathSegments == null) { this.relativePathSegments = new Collection (); } return this.relativePathSegments; } } public Uri RequestUri // uri on the wire, untouched { get { return this.requestUri; } set { this.requestUri = value; } } public UriTemplate Template // which one got matched { get { return this.template; } set { this.template = value; } } public Collection WildcardPathSegments // just the Path part matched by "*", decoded { get { if (this.wildcardPathSegments == null) { PopulateWildcardSegments(); } return this.wildcardPathSegments; } } internal void SetQueryParameters(NameValueCollection queryParameters) { this.queryParameters = new NameValueCollection(queryParameters); } internal void SetRelativePathSegments(Collection segments) { Fx.Assert(segments != null, "segments != null"); this.relativePathSegments = segments; } internal void SetWildcardPathSegmentsStart(int startOffset) { Fx.Assert(startOffset >= 0, "startOffset >= 0"); this.wildcardSegmentsStartOffset = startOffset; } void PopulateQueryParameters() { if (this.requestUri != null) { this.queryParameters = UriTemplateHelpers.ParseQueryString(this.requestUri.Query); } else { this.queryParameters = new NameValueCollection(); } } void PopulateWildcardSegments() { if (wildcardSegmentsStartOffset != -1) { this.wildcardPathSegments = new Collection (); for (int i = this.wildcardSegmentsStartOffset; i < this.RelativePathSegments.Count; ++i) { this.wildcardPathSegments.Add(this.RelativePathSegments[i]); } } else { this.wildcardPathSegments = new Collection (); } } } } // 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
- QueryCacheManager.cs
- EntityDataSourceSelectingEventArgs.cs
- DllHostInitializer.cs
- SecurityException.cs
- MaskPropertyEditor.cs
- ReadOnlyAttribute.cs
- SchemaTableColumn.cs
- CodeTypeMember.cs
- VisualTarget.cs
- CompilerGlobalScopeAttribute.cs
- NameSpaceExtractor.cs
- FactoryRecord.cs
- MenuAutoFormat.cs
- ECDsa.cs
- DataGridViewCellPaintingEventArgs.cs
- PersonalizationDictionary.cs
- DetailsViewRowCollection.cs
- TimelineGroup.cs
- TabControl.cs
- RtfControlWordInfo.cs
- InvalidCardException.cs
- MemberMaps.cs
- DbConnectionPoolGroupProviderInfo.cs
- Relationship.cs
- XmlCountingReader.cs
- DesignRelation.cs
- StylusOverProperty.cs
- _SingleItemRequestCache.cs
- BamlTreeMap.cs
- Attribute.cs
- UserControlCodeDomTreeGenerator.cs
- WebConfigurationHost.cs
- Repeater.cs
- MimeFormReflector.cs
- MediaElement.cs
- XmlSerializerNamespaces.cs
- StringStorage.cs
- TemplateNameScope.cs
- FactoryGenerator.cs
- Variable.cs
- DigitShape.cs
- Reference.cs
- EasingKeyFrames.cs
- WindowProviderWrapper.cs
- NavigateEvent.cs
- CriticalFileToken.cs
- SqlDataSourceQueryEditorForm.cs
- FormsAuthenticationCredentials.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- HttpProfileGroupBase.cs
- Pts.cs
- BuildManagerHost.cs
- UnmanagedMarshal.cs
- XmlWrappingReader.cs
- CodeValidator.cs
- XmlDataSourceView.cs
- ComPlusThreadInitializer.cs
- HtmlControlPersistable.cs
- EntityDataSourceUtil.cs
- SelfIssuedSamlTokenFactory.cs
- PageThemeCodeDomTreeGenerator.cs
- BamlTreeUpdater.cs
- GeneralTransformGroup.cs
- EdmItemCollection.cs
- PropertyInformation.cs
- WebPartTracker.cs
- Enumerable.cs
- HtmlFormParameterWriter.cs
- ButtonRenderer.cs
- IdleTimeoutMonitor.cs
- TextDecorationCollection.cs
- DataGridClipboardHelper.cs
- AmbiguousMatchException.cs
- TraceProvider.cs
- BindingCollection.cs
- TableLayoutSettingsTypeConverter.cs
- StylusShape.cs
- LayoutInformation.cs
- RegexCompilationInfo.cs
- InputLangChangeEvent.cs
- ParameterCollection.cs
- XmlAttributeProperties.cs
- WeakEventManager.cs
- OptimizedTemplateContent.cs
- _ProxyChain.cs
- elementinformation.cs
- LoadGrammarCompletedEventArgs.cs
- DrawingAttributeSerializer.cs
- GatewayIPAddressInformationCollection.cs
- FixedTextContainer.cs
- ExcludePathInfo.cs
- XhtmlTextWriter.cs
- _DomainName.cs
- PageHandlerFactory.cs
- PropertyDescriptorCollection.cs
- InputGestureCollection.cs
- Transform3DCollection.cs
- InternalConfigSettingsFactory.cs
- XPathNavigator.cs
- DocumentViewerHelper.cs