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
- ProtocolImporter.cs
- DllNotFoundException.cs
- mil_sdk_version.cs
- EventMappingSettings.cs
- ConfigXmlCDataSection.cs
- DesignerTransaction.cs
- StringPropertyBuilder.cs
- PtsHelper.cs
- CompilationUtil.cs
- HtmlTitle.cs
- PageCodeDomTreeGenerator.cs
- ToolstripProfessionalRenderer.cs
- PropertyNames.cs
- SqlClientPermission.cs
- RSAPKCS1SignatureFormatter.cs
- OperationAbortedException.cs
- DetailsViewPageEventArgs.cs
- ISessionStateStore.cs
- XmlObjectSerializerReadContext.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- XslNumber.cs
- DrawingContext.cs
- ExpressionParser.cs
- TextBox.cs
- WebBrowserNavigatedEventHandler.cs
- DictionaryContent.cs
- initElementDictionary.cs
- XmlText.cs
- Message.cs
- Frame.cs
- CaseInsensitiveOrdinalStringComparer.cs
- XPathConvert.cs
- CompiledIdentityConstraint.cs
- Int32Animation.cs
- __Error.cs
- MultiTouchSystemGestureLogic.cs
- OptimalBreakSession.cs
- StubHelpers.cs
- LayoutEvent.cs
- WindowsSpinner.cs
- UIElement.cs
- ObjectNotFoundException.cs
- SystemInfo.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- LayoutManager.cs
- path.cs
- XPathDocumentNavigator.cs
- Style.cs
- DefaultSerializationProviderAttribute.cs
- PointAnimationUsingKeyFrames.cs
- XPathBinder.cs
- XmlSchemaDatatype.cs
- ResizeGrip.cs
- ExpressionWriter.cs
- FlowLayout.cs
- EntityDataSourceColumn.cs
- DataGridViewDataConnection.cs
- ProfileParameter.cs
- ServiceDeploymentInfo.cs
- FileNameEditor.cs
- ComponentConverter.cs
- Row.cs
- WpfXamlType.cs
- HttpRawResponse.cs
- StorageTypeMapping.cs
- SpeakProgressEventArgs.cs
- Package.cs
- XmlReflectionMember.cs
- EdmFunctions.cs
- SmtpFailedRecipientException.cs
- TextParagraphView.cs
- KnowledgeBase.cs
- ValidatingPropertiesEventArgs.cs
- SelectionProcessor.cs
- TimeoutValidationAttribute.cs
- ALinqExpressionVisitor.cs
- OrCondition.cs
- XdrBuilder.cs
- SettingsPropertyIsReadOnlyException.cs
- XmlNamespaceMapping.cs
- EdmComplexTypeAttribute.cs
- ImageSourceConverter.cs
- Int32Animation.cs
- SerializationEventsCache.cs
- NotifyInputEventArgs.cs
- BrowserTree.cs
- ToolStripItemTextRenderEventArgs.cs
- HtmlElement.cs
- WindowsListViewSubItem.cs
- Compensation.cs
- ScrollChrome.cs
- ConstantCheck.cs
- PolygonHotSpot.cs
- LinqDataSourceValidationException.cs
- XmlNodeChangedEventManager.cs
- ContractUtils.cs
- SchemaSetCompiler.cs
- ListDictionaryInternal.cs
- ItemsChangedEventArgs.cs
- SecuritySessionClientSettings.cs