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
- CompilerScope.cs
- _DigestClient.cs
- Transform.cs
- SplineKeyFrames.cs
- ConnectionStringsExpressionBuilder.cs
- FormsAuthentication.cs
- MethodAccessException.cs
- SafeFileMappingHandle.cs
- MemoryPressure.cs
- URLMembershipCondition.cs
- DataServiceQuery.cs
- WindowInteractionStateTracker.cs
- EntityTypeEmitter.cs
- namescope.cs
- AssertFilter.cs
- EditorZoneBase.cs
- CompModSwitches.cs
- ConfigurationUtility.cs
- HebrewCalendar.cs
- MsdtcWrapper.cs
- WebEncodingValidatorAttribute.cs
- Pointer.cs
- SeekStoryboard.cs
- AssemblyFilter.cs
- XmlNodeChangedEventArgs.cs
- SortQuery.cs
- RtfFormatStack.cs
- CustomAttributeBuilder.cs
- ellipse.cs
- RadioButtonStandardAdapter.cs
- XmlNodeComparer.cs
- TreeNodeStyleCollection.cs
- ProxyWebPartManager.cs
- DocumentScope.cs
- CodeRegionDirective.cs
- FixedSOMTable.cs
- Accessible.cs
- AncestorChangedEventArgs.cs
- MethodAccessException.cs
- listitem.cs
- SmtpReplyReaderFactory.cs
- ConfigurationManagerInternalFactory.cs
- SqlSelectClauseBuilder.cs
- _CookieModule.cs
- SchemaType.cs
- PolyQuadraticBezierSegment.cs
- UTF7Encoding.cs
- DrawingVisualDrawingContext.cs
- DefaultProxySection.cs
- MeshGeometry3D.cs
- TableAdapterManagerNameHandler.cs
- PageAsyncTaskManager.cs
- SqlSelectClauseBuilder.cs
- DataServiceConfiguration.cs
- DbMetaDataCollectionNames.cs
- ActivityMarkupSerializer.cs
- ContractSearchPattern.cs
- DataListItemCollection.cs
- ProxyWebPartManager.cs
- TypedTableBaseExtensions.cs
- SQLMoneyStorage.cs
- ExtractorMetadata.cs
- DragDeltaEventArgs.cs
- AdornedElementPlaceholder.cs
- util.cs
- EntityConnectionStringBuilderItem.cs
- SchemaTypeEmitter.cs
- OleCmdHelper.cs
- ObjectDataSourceChooseTypePanel.cs
- SchemaSetCompiler.cs
- Size.cs
- EdmItemError.cs
- Menu.cs
- WindowExtensionMethods.cs
- SHA384Cng.cs
- PropertyItemInternal.cs
- ObjectDataSourceSelectingEventArgs.cs
- PrintDocument.cs
- ToolCreatedEventArgs.cs
- DynamicResourceExtensionConverter.cs
- BamlLocalizer.cs
- HwndHost.cs
- BitmapData.cs
- BlurBitmapEffect.cs
- TracingConnectionInitiator.cs
- GroupQuery.cs
- _NegotiateClient.cs
- String.cs
- FormsAuthenticationConfiguration.cs
- CharacterBufferReference.cs
- PersonalizableTypeEntry.cs
- TextProviderWrapper.cs
- RegexStringValidatorAttribute.cs
- KeySpline.cs
- ColorBlend.cs
- WindowsAuthenticationModule.cs
- RuntimeArgumentHandle.cs
- Point3DCollection.cs
- Application.cs
- DateTimeStorage.cs