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
- WorkflowApplicationTerminatedException.cs
- DataGridViewTextBoxCell.cs
- WSTrust.cs
- ContentPlaceHolderDesigner.cs
- Sequence.cs
- LocationUpdates.cs
- AssemblyAssociatedContentFileAttribute.cs
- MulticastOption.cs
- X509CertificateValidator.cs
- VoiceObjectToken.cs
- ObjectHandle.cs
- ColumnResult.cs
- OutputCacheModule.cs
- ExceptionUtility.cs
- StatusBarPanelClickEvent.cs
- LinqDataSourceDisposeEventArgs.cs
- MimeImporter.cs
- ObjectDataSourceStatusEventArgs.cs
- Validator.cs
- SimpleHandlerBuildProvider.cs
- InkCanvas.cs
- ObjectDataSourceDisposingEventArgs.cs
- ResetableIterator.cs
- NetTcpBindingElement.cs
- DeferredReference.cs
- RemoteCryptoSignHashRequest.cs
- TrackingStringDictionary.cs
- RefreshEventArgs.cs
- MultiSelectRootGridEntry.cs
- TextEffect.cs
- DataBindingExpressionBuilder.cs
- FocusWithinProperty.cs
- DetailsViewDeleteEventArgs.cs
- CollectionViewSource.cs
- BitmapEditor.cs
- iisPickupDirectory.cs
- XmlSchemaAppInfo.cs
- ProgressBar.cs
- HyperLink.cs
- SingleAnimationBase.cs
- XmlDictionaryString.cs
- RangeValuePatternIdentifiers.cs
- ReachDocumentReferenceCollectionSerializer.cs
- HierarchicalDataBoundControlAdapter.cs
- IsolatedStorageFile.cs
- ProcessModuleCollection.cs
- FileDialogCustomPlace.cs
- InitializationEventAttribute.cs
- WebBrowserHelper.cs
- RootBrowserWindow.cs
- NavigationExpr.cs
- XomlCompiler.cs
- VerificationException.cs
- InsufficientMemoryException.cs
- ImageDrawing.cs
- SymLanguageVendor.cs
- RequestQueue.cs
- ServiceModelActivationSectionGroup.cs
- FormViewDeletedEventArgs.cs
- InfoCardSymmetricAlgorithm.cs
- TypefaceCollection.cs
- RelationshipSet.cs
- BaseTemplateParser.cs
- OptionUsage.cs
- ProfileService.cs
- EditingMode.cs
- SystemResources.cs
- MenuItem.cs
- SqlTriggerContext.cs
- IisTraceWebEventProvider.cs
- Deflater.cs
- SolidBrush.cs
- InternalEnumValidator.cs
- WebBrowserContainer.cs
- ToolStripSettings.cs
- IssuedSecurityTokenParameters.cs
- AggregateNode.cs
- Query.cs
- BitmapEffectInput.cs
- DocumentViewerAutomationPeer.cs
- ScriptDescriptor.cs
- FlowchartStart.xaml.cs
- HandleCollector.cs
- CodeNamespace.cs
- NameValueSectionHandler.cs
- ConstantSlot.cs
- PeerEndPoint.cs
- MouseCaptureWithinProperty.cs
- AnimationClock.cs
- QueryMatcher.cs
- CheckBoxFlatAdapter.cs
- SettingsPropertyNotFoundException.cs
- XmlSchemaSimpleTypeRestriction.cs
- DesignerToolboxInfo.cs
- DataTemplate.cs
- prompt.cs
- GestureRecognitionResult.cs
- DetailsView.cs
- InvalidPrinterException.cs
- EventPropertyMap.cs