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
- CollectionViewGroupInternal.cs
- SystemIPAddressInformation.cs
- RtType.cs
- DesignSurface.cs
- WrapPanel.cs
- RootBrowserWindowAutomationPeer.cs
- SubclassTypeValidator.cs
- WebControlAdapter.cs
- ValidationResult.cs
- HtmlInputPassword.cs
- CombinedGeometry.cs
- TreeView.cs
- NonClientArea.cs
- WebServiceReceive.cs
- EditCommandColumn.cs
- SelectionUIService.cs
- Relationship.cs
- RepeatEnumerable.cs
- SqlComparer.cs
- RecognitionResult.cs
- validation.cs
- OleDbWrapper.cs
- XamlPathDataSerializer.cs
- SemaphoreSecurity.cs
- ContextBase.cs
- AutoResetEvent.cs
- ISAPIWorkerRequest.cs
- XmlLanguage.cs
- ClonableStack.cs
- OptimisticConcurrencyException.cs
- SmtpSection.cs
- IntSecurity.cs
- CompositeFontParser.cs
- PkcsUtils.cs
- StoreAnnotationsMap.cs
- CfgRule.cs
- SizeChangedEventArgs.cs
- xdrvalidator.cs
- InternalPermissions.cs
- UserControlCodeDomTreeGenerator.cs
- RequiredFieldValidator.cs
- SortKey.cs
- DiagnosticStrings.cs
- TextTreeDeleteContentUndoUnit.cs
- TextTreeUndo.cs
- IndexedString.cs
- FixedSOMTable.cs
- MultipleViewPattern.cs
- ConsoleKeyInfo.cs
- XsltOutput.cs
- BamlResourceSerializer.cs
- DataGridViewCellStyleConverter.cs
- AuthenticationConfig.cs
- FontUnit.cs
- __FastResourceComparer.cs
- WebControl.cs
- ParameterBuilder.cs
- OlePropertyStructs.cs
- AsyncStreamReader.cs
- Knowncolors.cs
- ClosableStream.cs
- SqlConnectionPoolGroupProviderInfo.cs
- ConfigXmlDocument.cs
- ArrayEditor.cs
- Tracer.cs
- DbConnectionPoolGroup.cs
- AffineTransform3D.cs
- ProfileGroupSettingsCollection.cs
- PlaceHolder.cs
- ValueTypeFixupInfo.cs
- FileReader.cs
- TcpSocketManager.cs
- GACIdentityPermission.cs
- FileVersion.cs
- FontInfo.cs
- IISMapPath.cs
- FormsAuthenticationUserCollection.cs
- RenderOptions.cs
- TextParagraph.cs
- PositiveTimeSpanValidator.cs
- WriteLineDesigner.xaml.cs
- ReferentialConstraint.cs
- ProcessModule.cs
- WebPartUtil.cs
- ComNativeDescriptor.cs
- UserControlDocumentDesigner.cs
- PointUtil.cs
- CounterCreationDataCollection.cs
- XmlSchemaAttributeGroupRef.cs
- AsymmetricSecurityProtocol.cs
- Queue.cs
- EditorReuseAttribute.cs
- ResolvedKeyFrameEntry.cs
- LiteralLink.cs
- MethodCallTranslator.cs
- TextDecorationLocationValidation.cs
- WorkItem.cs
- HttpDictionary.cs
- HandlerFactoryCache.cs
- Tile.cs