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
- OuterGlowBitmapEffect.cs
- SmiContext.cs
- EventLogPermissionEntryCollection.cs
- StoreItemCollection.cs
- TextBlockAutomationPeer.cs
- XmlUtil.cs
- TaskScheduler.cs
- BindingValueChangedEventArgs.cs
- ReadOnlyPermissionSet.cs
- DbDataAdapter.cs
- _RequestCacheProtocol.cs
- TerminateWorkflow.cs
- Wildcard.cs
- Style.cs
- GridViewRowPresenterBase.cs
- TagPrefixInfo.cs
- ButtonFieldBase.cs
- _LocalDataStore.cs
- CreateUserWizard.cs
- DesignRelationCollection.cs
- RadioButtonList.cs
- GeometryModel3D.cs
- Int32Storage.cs
- TemplateXamlParser.cs
- CodeGeneratorAttribute.cs
- ReplyChannel.cs
- WinEventQueueItem.cs
- SafeThreadHandle.cs
- FullTrustAssembly.cs
- PartialCachingControl.cs
- ClientSettingsSection.cs
- XmlCodeExporter.cs
- ControlCollection.cs
- ToolBarTray.cs
- DataControlReferenceCollection.cs
- ExpressionBuilder.cs
- XmlCodeExporter.cs
- SerialPort.cs
- BitmapEffectDrawingContextState.cs
- DataError.cs
- TextViewDesigner.cs
- Connector.cs
- ImageAutomationPeer.cs
- AvTraceFormat.cs
- Win32KeyboardDevice.cs
- XmlValidatingReader.cs
- StorageMappingFragment.cs
- PlaceHolder.cs
- _OSSOCK.cs
- Timeline.cs
- InvalidBodyAccessException.cs
- TypeInfo.cs
- AnnotationObservableCollection.cs
- TypeSystem.cs
- SoapIncludeAttribute.cs
- Char.cs
- TextPointerBase.cs
- InkSerializer.cs
- TdsParserSafeHandles.cs
- ObjectAnimationBase.cs
- SemanticTag.cs
- SatelliteContractVersionAttribute.cs
- UserPersonalizationStateInfo.cs
- X509ChainPolicy.cs
- _CookieModule.cs
- RepeaterCommandEventArgs.cs
- TypeResolvingOptions.cs
- Menu.cs
- MaskedTextBoxTextEditorDropDown.cs
- TextSegment.cs
- TCEAdapterGenerator.cs
- CookielessHelper.cs
- DesignerValidatorAdapter.cs
- Rule.cs
- PasswordBox.cs
- FormViewPageEventArgs.cs
- IdnMapping.cs
- MultiSelector.cs
- CuspData.cs
- KeyedHashAlgorithm.cs
- ProcessModelSection.cs
- XmlSigningNodeWriter.cs
- XmlResolver.cs
- WebRequestModuleElement.cs
- EventLogPermissionEntryCollection.cs
- ConfigPathUtility.cs
- ToolboxItemAttribute.cs
- AttachedAnnotationChangedEventArgs.cs
- StructuredTypeEmitter.cs
- FilterException.cs
- ToolStripSplitStackLayout.cs
- SecurityPolicySection.cs
- MimeBasePart.cs
- PasswordBoxAutomationPeer.cs
- SQlBooleanStorage.cs
- OrderedHashRepartitionStream.cs
- OleDbConnectionFactory.cs
- RowToFieldTransformer.cs
- XamlPointCollectionSerializer.cs
- SessionStateModule.cs