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
- ProcessProtocolHandler.cs
- PeerNameRegistration.cs
- QuaternionRotation3D.cs
- ExtendedPropertyDescriptor.cs
- _Win32.cs
- BasicBrowserDialog.designer.cs
- ProfileProvider.cs
- SqlXml.cs
- DbProviderFactories.cs
- AudioStateChangedEventArgs.cs
- StateDesignerConnector.cs
- Empty.cs
- UriExt.cs
- Debug.cs
- SharedPerformanceCounter.cs
- DataListItemCollection.cs
- SQLMoney.cs
- CategoryGridEntry.cs
- CodeLinePragma.cs
- util.cs
- HTMLTagNameToTypeMapper.cs
- ReadOnlyTernaryTree.cs
- KeyGestureValueSerializer.cs
- WindowsAuthenticationEventArgs.cs
- SendContent.cs
- IncrementalHitTester.cs
- PkcsMisc.cs
- AvTrace.cs
- SmiEventStream.cs
- TextBox.cs
- SessionStateContainer.cs
- SchemaInfo.cs
- BitmapScalingModeValidation.cs
- ScriptControl.cs
- MouseActionValueSerializer.cs
- GridViewUpdatedEventArgs.cs
- DelayLoadType.cs
- DataServiceRequestOfT.cs
- ClientTarget.cs
- SharedPersonalizationStateInfo.cs
- EntityDataSourceSelectingEventArgs.cs
- FileFormatException.cs
- ImageSource.cs
- AnnouncementEndpointElement.cs
- PictureBox.cs
- XmlArrayItemAttributes.cs
- TypeResolvingOptions.cs
- ServiceDescription.cs
- documentsequencetextcontainer.cs
- DetailsViewModeEventArgs.cs
- SystemTcpStatistics.cs
- XXXOnTypeBuilderInstantiation.cs
- SettingsBindableAttribute.cs
- SamlConstants.cs
- XmlFormatWriterGenerator.cs
- SoapMessage.cs
- AmbientLight.cs
- XmlArrayItemAttributes.cs
- RubberbandSelector.cs
- InvalidComObjectException.cs
- Subtree.cs
- NegationPusher.cs
- XmlAttributeAttribute.cs
- DateTimeValueSerializer.cs
- EntityModelSchemaGenerator.cs
- DescendentsWalkerBase.cs
- InfoCardBinaryReader.cs
- DoubleKeyFrameCollection.cs
- ConsoleKeyInfo.cs
- BaseConfigurationRecord.cs
- MdiWindowListItemConverter.cs
- DocumentViewerBaseAutomationPeer.cs
- ChildrenQuery.cs
- EncoderParameters.cs
- SmiEventSink_DeferedProcessing.cs
- TextRange.cs
- ByteAnimationUsingKeyFrames.cs
- XmlSerializerNamespaces.cs
- ValidatingPropertiesEventArgs.cs
- EditorAttribute.cs
- ToolStripDropDownMenu.cs
- FixedHighlight.cs
- SynchronizedDisposablePool.cs
- InternalConfigRoot.cs
- EventLogTraceListener.cs
- WebPartExportVerb.cs
- BulletedList.cs
- Exceptions.cs
- ExternalException.cs
- OdbcException.cs
- XPathDocumentIterator.cs
- SerialPinChanges.cs
- ApplyImportsAction.cs
- ScriptingAuthenticationServiceSection.cs
- DataGrid.cs
- MaterializeFromAtom.cs
- ConfigurationSection.cs
- IgnorePropertiesAttribute.cs
- ByteConverter.cs
- DriveInfo.cs