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
- DataControlPagerLinkButton.cs
- GestureRecognizer.cs
- StringReader.cs
- ClientRuntimeConfig.cs
- ByteAnimationUsingKeyFrames.cs
- HttpHeaderCollection.cs
- Evaluator.cs
- ScriptRef.cs
- SqlParameter.cs
- BooleanKeyFrameCollection.cs
- SelectionItemPatternIdentifiers.cs
- QueryPageSettingsEventArgs.cs
- RuntimeConfigLKG.cs
- XmlTextReader.cs
- UpdatePanel.cs
- MdiWindowListStrip.cs
- DataGridViewButtonColumn.cs
- HScrollBar.cs
- FontDialog.cs
- MethodAccessException.cs
- OdbcErrorCollection.cs
- WindowsSpinner.cs
- ValidationError.cs
- EditingScope.cs
- DetailsViewUpdatedEventArgs.cs
- CodeArgumentReferenceExpression.cs
- BlurBitmapEffect.cs
- ResXResourceSet.cs
- HttpProtocolReflector.cs
- LoginUtil.cs
- PointHitTestResult.cs
- SoapSchemaMember.cs
- EntityContainerEntitySet.cs
- FixedBufferAttribute.cs
- NameValueFileSectionHandler.cs
- BamlLocalizabilityResolver.cs
- Internal.cs
- LoadRetryHandler.cs
- FunctionImportElement.cs
- ConstructorArgumentAttribute.cs
- CallTemplateAction.cs
- indexingfiltermarshaler.cs
- BinarySerializer.cs
- DeferredSelectedIndexReference.cs
- dtdvalidator.cs
- Matrix3DValueSerializer.cs
- XMLDiffLoader.cs
- TreeViewImageKeyConverter.cs
- XmlDataImplementation.cs
- AllMembershipCondition.cs
- DbExpressionVisitor_TResultType.cs
- ReachPrintTicketSerializer.cs
- InProcStateClientManager.cs
- EmbeddedMailObject.cs
- ResourceDictionary.cs
- Calendar.cs
- MenuRendererClassic.cs
- DataGridViewCellValidatingEventArgs.cs
- HtmlInputControl.cs
- SqlDeflator.cs
- EnumUnknown.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- PlanCompilerUtil.cs
- _ContextAwareResult.cs
- SingleTagSectionHandler.cs
- AppSettingsSection.cs
- PublishLicense.cs
- ListViewItem.cs
- XmlFormatReaderGenerator.cs
- Utils.cs
- ObjectConverter.cs
- ExceptionTrace.cs
- SettingsPropertyIsReadOnlyException.cs
- WizardPanel.cs
- AliasExpr.cs
- SemaphoreSecurity.cs
- FormViewPageEventArgs.cs
- CodeConditionStatement.cs
- ObjectAnimationUsingKeyFrames.cs
- SqlGatherConsumedAliases.cs
- JournalEntry.cs
- ScrollItemPattern.cs
- SystemIPInterfaceProperties.cs
- IEnumerable.cs
- RawStylusInput.cs
- Ticks.cs
- IdleTimeoutMonitor.cs
- InputDevice.cs
- WindowsTreeView.cs
- MultiBinding.cs
- DecoderBestFitFallback.cs
- JapaneseCalendar.cs
- ObjRef.cs
- SessionStateItemCollection.cs
- DefaultCommandConverter.cs
- SafeFileMapViewHandle.cs
- XmlWrappingReader.cs
- FlowDocument.cs
- KnownTypes.cs
- QuaternionRotation3D.cs