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
- FixedDocumentSequencePaginator.cs
- StandardBindingImporter.cs
- ModelItemDictionaryImpl.cs
- TypeUsageBuilder.cs
- ExpressionTable.cs
- Italic.cs
- SafeRegistryHandle.cs
- SearchForVirtualItemEventArgs.cs
- HtmlSelect.cs
- SrgsDocumentParser.cs
- LOSFormatter.cs
- DataGridViewTopLeftHeaderCell.cs
- AnnotationResourceCollection.cs
- EnvelopedPkcs7.cs
- CalendarTable.cs
- ThicknessAnimationUsingKeyFrames.cs
- SerializationHelper.cs
- UITypeEditor.cs
- NumericExpr.cs
- Thumb.cs
- ConfigurationFileMap.cs
- NumericPagerField.cs
- MetabaseSettingsIis7.cs
- XmlProcessingInstruction.cs
- AppliedDeviceFiltersEditor.cs
- ImageSourceValueSerializer.cs
- TemplateBuilder.cs
- CheckBoxField.cs
- tooltip.cs
- SchemaCollectionCompiler.cs
- InternalUserCancelledException.cs
- ValidatingPropertiesEventArgs.cs
- AdapterUtil.cs
- DeviceSpecificDialogCachedState.cs
- WorkItem.cs
- ThreadAttributes.cs
- StylusPointPropertyId.cs
- EllipticalNodeOperations.cs
- PropertyValueChangedEvent.cs
- GridViewCancelEditEventArgs.cs
- DynamicILGenerator.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- ObjectStateEntryDbDataRecord.cs
- ExcCanonicalXml.cs
- DesignerActionListCollection.cs
- EventDescriptor.cs
- CodeSnippetExpression.cs
- TypeTypeConverter.cs
- MatrixAnimationBase.cs
- Char.cs
- TextDocumentView.cs
- VerbConverter.cs
- QuaternionKeyFrameCollection.cs
- DataGridAutoFormatDialog.cs
- ResourceWriter.cs
- XmlSchemaChoice.cs
- XPathArrayIterator.cs
- InputLangChangeRequestEvent.cs
- DispatcherEventArgs.cs
- WebPartActionVerb.cs
- FormsAuthenticationEventArgs.cs
- EndOfStreamException.cs
- ColumnMapVisitor.cs
- MbpInfo.cs
- MultipleViewPatternIdentifiers.cs
- lengthconverter.cs
- JournalEntryListConverter.cs
- InputLanguageCollection.cs
- WebPermission.cs
- InputLanguage.cs
- ISCIIEncoding.cs
- NameSpaceExtractor.cs
- FilterException.cs
- HttpInputStream.cs
- StrokeFIndices.cs
- TreeNodeBindingCollection.cs
- ListGeneralPage.cs
- MenuItemBinding.cs
- FixedPage.cs
- TraceSource.cs
- NextPreviousPagerField.cs
- ProjectionQueryOptionExpression.cs
- Track.cs
- TemplateInstanceAttribute.cs
- DataSourceUtil.cs
- Interlocked.cs
- TextParagraphView.cs
- WeakRefEnumerator.cs
- DesignerEditorPartChrome.cs
- Size3D.cs
- DbDataReader.cs
- ObjectViewListener.cs
- TokenBasedSet.cs
- ManualWorkflowSchedulerService.cs
- GridViewRowPresenterBase.cs
- Matrix3DValueSerializer.cs
- BinaryUtilClasses.cs
- TranslateTransform3D.cs
- TextReader.cs
- MergeFilterQuery.cs