Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / UriTemplateLiteralQueryValue.cs / 2 / UriTemplateLiteralQueryValue.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System { using System.Collections.Specialized; using System.ServiceModel.Web; using System.Text; using System.Web; using System.ServiceModel.Channels; // thin wrapper around string; use type system to help ensure we // are doing canonicalization right/consistently class UriTemplateLiteralQueryValue : UriTemplateQueryValue, IComparable{ readonly string value; // an unescaped representation UriTemplateLiteralQueryValue(string value) : base(UriTemplatePartType.Literal) { Fx.Assert(value != null, "bad literal value"); this.value = value; } public static UriTemplateLiteralQueryValue CreateFromUriTemplate(string value) { return new UriTemplateLiteralQueryValue(UrlUtility.UrlDecode(value, Encoding.UTF8)); } public string AsEscapedString() { return UrlUtility.UrlEncode(this.value, Encoding.UTF8); } public string AsRawUnescapedString() { return this.value; } public override void Bind(string keyName, string[] values, ref int valueIndex, StringBuilder query) { query.AppendFormat("&{0}={1}", UrlUtility.UrlEncode(keyName, Encoding.UTF8), AsEscapedString()); } public int CompareTo(UriTemplateLiteralQueryValue other) { return string.Compare(this.value, other.value, StringComparison.Ordinal); } public override bool Equals(object obj) { UriTemplateLiteralQueryValue lqv = obj as UriTemplateLiteralQueryValue; if (lqv == null) { Fx.Assert("why would we ever call this?"); return false; } else { return this.value == lqv.value; } } public override int GetHashCode() { return this.value.GetHashCode(); } public override bool IsEquivalentTo(UriTemplateQueryValue other) { if (other == null) { Fx.Assert("why would we ever call this?"); return false; } if (other.Nature != UriTemplatePartType.Literal) { return false; } UriTemplateLiteralQueryValue otherAsLiteral = other as UriTemplateLiteralQueryValue; Fx.Assert(otherAsLiteral != null, "The nature requires that this will be OK"); return (CompareTo(otherAsLiteral) == 0); } public override void Lookup(string value, NameValueCollection boundParameters) { Fx.Assert(string.Compare(this.value, value, StringComparison.Ordinal) == 0, "How can that be?"); } } } // 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
- HtmlObjectListAdapter.cs
- DockPattern.cs
- TableCellAutomationPeer.cs
- CustomErrorCollection.cs
- ActivityExecutorSurrogate.cs
- FieldBuilder.cs
- LocalBuilder.cs
- EnumUnknown.cs
- DataGridPreparingCellForEditEventArgs.cs
- StorageComplexTypeMapping.cs
- EntityDataSourceDesignerHelper.cs
- Annotation.cs
- InstanceNotReadyException.cs
- MessageSecurityOverHttp.cs
- CodeConditionStatement.cs
- OutputCacheProfile.cs
- IdnElement.cs
- CustomPeerResolverService.cs
- ProviderIncompatibleException.cs
- tibetanshape.cs
- _DomainName.cs
- FileChangesMonitor.cs
- SqlServer2KCompatibilityCheck.cs
- MatrixKeyFrameCollection.cs
- ParameterRetriever.cs
- DetailsViewRow.cs
- WebPartActionVerb.cs
- Geometry3D.cs
- ChannelTraceRecord.cs
- COM2PropertyBuilderUITypeEditor.cs
- _AuthenticationState.cs
- Paragraph.cs
- Resources.Designer.cs
- HatchBrush.cs
- ListBox.cs
- ToolboxComponentsCreatingEventArgs.cs
- RelationshipDetailsRow.cs
- SqlCommandSet.cs
- NeedSkipTokenVisitor.cs
- KeyInterop.cs
- DnsEndpointIdentity.cs
- SQLDouble.cs
- CodeConditionStatement.cs
- X509PeerCertificateAuthenticationElement.cs
- StorageEndPropertyMapping.cs
- OutputCacheProviderCollection.cs
- Types.cs
- CacheMemory.cs
- COM2ExtendedUITypeEditor.cs
- OracleParameterCollection.cs
- CompositeActivityValidator.cs
- AspNetHostingPermission.cs
- EditCommandColumn.cs
- KnownBoxes.cs
- SessionStateContainer.cs
- MetadataCollection.cs
- Mutex.cs
- DockProviderWrapper.cs
- DataGridViewUtilities.cs
- RootBrowserWindowProxy.cs
- MarshalDirectiveException.cs
- OperationExecutionFault.cs
- WindowsListBox.cs
- BasicAsyncResult.cs
- WebBrowserEvent.cs
- _CookieModule.cs
- TimelineCollection.cs
- ParentControlDesigner.cs
- WindowsGraphicsCacheManager.cs
- GlyphRunDrawing.cs
- ObjectStateFormatter.cs
- cache.cs
- WindowsAuthenticationEventArgs.cs
- DataMisalignedException.cs
- SrgsOneOf.cs
- InputGestureCollection.cs
- TextWriterTraceListener.cs
- JournalEntry.cs
- DefaultExpressionVisitor.cs
- TextureBrush.cs
- BooleanAnimationUsingKeyFrames.cs
- DelegateSerializationHolder.cs
- ObjectDisposedException.cs
- ScrollBarRenderer.cs
- DisplayNameAttribute.cs
- RegexReplacement.cs
- NumberFormatInfo.cs
- HttpPostedFile.cs
- CellRelation.cs
- ScriptIgnoreAttribute.cs
- PersonalizationDictionary.cs
- EventlogProvider.cs
- isolationinterop.cs
- PropertyGeneratedEventArgs.cs
- SqlNodeAnnotations.cs
- ProcessModelSection.cs
- ListViewItemSelectionChangedEvent.cs
- AnnotationStore.cs
- Point3D.cs
- UserInitiatedNavigationPermission.cs