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
- RadioButtonRenderer.cs
- PtsPage.cs
- FormattedText.cs
- Constants.cs
- DecoderReplacementFallback.cs
- Aggregates.cs
- ReaderContextStackData.cs
- CustomTypeDescriptor.cs
- DataGridItem.cs
- WindowsEditBoxRange.cs
- LineBreak.cs
- ResourceDictionaryCollection.cs
- SoapFormatterSinks.cs
- TreeWalkHelper.cs
- HttpContext.cs
- MasterPage.cs
- ValueProviderWrapper.cs
- LifetimeServices.cs
- TextTreeInsertUndoUnit.cs
- InfiniteIntConverter.cs
- safex509handles.cs
- ExceptionWrapper.cs
- GlyphCollection.cs
- DateTimeParse.cs
- NodeFunctions.cs
- ValidationErrorInfo.cs
- Assert.cs
- TextServicesDisplayAttribute.cs
- ExpressionBinding.cs
- DataGridViewTextBoxCell.cs
- HtmlInputSubmit.cs
- DependencySource.cs
- MulticastNotSupportedException.cs
- ValidatedMobileControlConverter.cs
- CheckBoxList.cs
- BuildProvider.cs
- ConsumerConnectionPoint.cs
- DataDesignUtil.cs
- MetadataArtifactLoaderFile.cs
- JsonReaderDelegator.cs
- NamespaceList.cs
- OracleConnectionFactory.cs
- BamlRecordHelper.cs
- TablePattern.cs
- InstallHelper.cs
- MSG.cs
- WeakRefEnumerator.cs
- DataPagerField.cs
- NavigationHelper.cs
- HtmlContainerControl.cs
- EventMappingSettingsCollection.cs
- ActivitySurrogateSelector.cs
- JournalEntry.cs
- XmlNotation.cs
- FlowchartDesigner.xaml.cs
- CommonGetThemePartSize.cs
- InternalConfigHost.cs
- OleDbCommand.cs
- StrongNameKeyPair.cs
- FontEmbeddingManager.cs
- X509Certificate2Collection.cs
- RelatedPropertyManager.cs
- DesignerActionList.cs
- HttpConfigurationContext.cs
- Utils.cs
- DataGridViewColumnConverter.cs
- InertiaExpansionBehavior.cs
- SqlInfoMessageEvent.cs
- Activity.cs
- ToolBarOverflowPanel.cs
- BuildDependencySet.cs
- ConditionalAttribute.cs
- DataReceivedEventArgs.cs
- OperationAbortedException.cs
- CipherData.cs
- OrderingInfo.cs
- Vector3D.cs
- PerfCounterSection.cs
- Brush.cs
- OrderByLifter.cs
- XmlEntity.cs
- EncoderFallback.cs
- SolidBrush.cs
- PersonalizableAttribute.cs
- EmptyCollection.cs
- EntityClassGenerator.cs
- UnsafePeerToPeerMethods.cs
- DataControlReference.cs
- NativeCompoundFileAPIs.cs
- DisplayNameAttribute.cs
- Attributes.cs
- TextSimpleMarkerProperties.cs
- BinaryCommonClasses.cs
- HtmlInputButton.cs
- Style.cs
- AccessibilityApplicationManager.cs
- MouseCaptureWithinProperty.cs
- QuaternionAnimation.cs
- DataSourceHelper.cs
- VisualStyleElement.cs