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
- DataSvcMapFile.cs
- SoapParser.cs
- PagedDataSource.cs
- LinqDataSourceValidationException.cs
- CharUnicodeInfo.cs
- BatchStream.cs
- Label.cs
- TriggerAction.cs
- Internal.cs
- MembershipPasswordException.cs
- SQLInt16.cs
- NavigationWindowAutomationPeer.cs
- RC2.cs
- KeyInterop.cs
- RootCodeDomSerializer.cs
- ResourcePart.cs
- SynchronizedDispatch.cs
- DrawingCollection.cs
- CompilationLock.cs
- WindowsFormsHost.cs
- FastEncoderWindow.cs
- ProfileService.cs
- WebPartConnectVerb.cs
- BmpBitmapDecoder.cs
- InputQueue.cs
- CodeLabeledStatement.cs
- ConnectionStringsExpressionEditor.cs
- DataGridViewControlCollection.cs
- Permission.cs
- Int16.cs
- CollectionsUtil.cs
- HandlerBase.cs
- XmlFormatExtensionPointAttribute.cs
- ResourceAttributes.cs
- PairComparer.cs
- DataViewListener.cs
- ContextMenuAutomationPeer.cs
- CancelRequestedRecord.cs
- DataPagerFieldCommandEventArgs.cs
- HtmlInputReset.cs
- ProbeMatchesApril2005.cs
- UndirectedGraph.cs
- HotCommands.cs
- MailHeaderInfo.cs
- UnicodeEncoding.cs
- AsyncStreamReader.cs
- LinqDataSourceUpdateEventArgs.cs
- SafeCryptoHandles.cs
- IIS7UserPrincipal.cs
- documentsequencetextcontainer.cs
- CompiledRegexRunnerFactory.cs
- StylusPointDescription.cs
- NameTable.cs
- ModelTypeConverter.cs
- dsa.cs
- ListBindingConverter.cs
- DataControlReference.cs
- ImageBrush.cs
- BoolExpression.cs
- ClassicBorderDecorator.cs
- Win32KeyboardDevice.cs
- SqlCommandSet.cs
- WindowsFont.cs
- PropertyKey.cs
- InfoCardBaseException.cs
- TypeSystem.cs
- SemaphoreSecurity.cs
- COM2Properties.cs
- OrderPreservingSpoolingTask.cs
- TransformCryptoHandle.cs
- UserThread.cs
- LineInfo.cs
- DetailsViewModeEventArgs.cs
- TCPListener.cs
- ExtendedProtectionPolicy.cs
- RNGCryptoServiceProvider.cs
- GlobalProxySelection.cs
- UniqueIdentifierService.cs
- Function.cs
- WindowProviderWrapper.cs
- ExtensionQuery.cs
- SerialPinChanges.cs
- TaskFormBase.cs
- XamlSerializationHelper.cs
- Publisher.cs
- DataGridViewMethods.cs
- CapabilitiesAssignment.cs
- dataobject.cs
- FilterEventArgs.cs
- DataViewListener.cs
- Select.cs
- BindingListCollectionView.cs
- HandledEventArgs.cs
- FormViewUpdateEventArgs.cs
- CustomAttributeSerializer.cs
- VisualStyleElement.cs
- CLSCompliantAttribute.cs
- AsyncCodeActivity.cs
- CodeCatchClauseCollection.cs
- EntityDataSourceContextCreatingEventArgs.cs