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
- ShutDownListener.cs
- LineServicesRun.cs
- TreeNodeCollectionEditorDialog.cs
- InstanceValue.cs
- BinHexDecoder.cs
- FormViewInsertedEventArgs.cs
- AxParameterData.cs
- ProtocolsSection.cs
- DesignerActionItemCollection.cs
- VectorCollectionValueSerializer.cs
- ReadWriteSpinLock.cs
- IndexingContentUnit.cs
- DebugInfoGenerator.cs
- MetadataArtifactLoaderComposite.cs
- NamespaceDecl.cs
- Model3DGroup.cs
- ParameterElementCollection.cs
- XmlAttributeOverrides.cs
- CqlBlock.cs
- PathFigureCollectionConverter.cs
- DesignTimeData.cs
- AutomationProperties.cs
- InfoCardSchemas.cs
- XmlQueryType.cs
- ErrorsHelper.cs
- TemplatePagerField.cs
- RuleSetDialog.Designer.cs
- TreeViewCancelEvent.cs
- CodeVariableDeclarationStatement.cs
- CodeIterationStatement.cs
- ProfileSettingsCollection.cs
- XmlReflectionMember.cs
- DataBoundControlAdapter.cs
- CacheSection.cs
- ListViewItem.cs
- RepeaterItemCollection.cs
- BaseValidator.cs
- WindowsAuthenticationModule.cs
- assertwrapper.cs
- SecurityUtils.cs
- SecurityPolicyVersion.cs
- PropertiesTab.cs
- SafeMILHandle.cs
- IssuedTokenClientCredential.cs
- PolicyStatement.cs
- PageCatalogPart.cs
- AxHost.cs
- BamlLocalizer.cs
- HostingEnvironmentWrapper.cs
- TreeViewItem.cs
- TemplateBamlTreeBuilder.cs
- TempFiles.cs
- PropertyMappingExceptionEventArgs.cs
- GradientBrush.cs
- PrintPageEvent.cs
- DetailsViewModeEventArgs.cs
- GenericsInstances.cs
- FormatConvertedBitmap.cs
- oledbconnectionstring.cs
- DesignerProperties.cs
- StringArrayEditor.cs
- QilSortKey.cs
- SpeechDetectedEventArgs.cs
- _Connection.cs
- UnmanagedMemoryStream.cs
- String.cs
- LinkUtilities.cs
- CaseInsensitiveHashCodeProvider.cs
- DelegatedStream.cs
- StylusPointPropertyUnit.cs
- PersistenceProviderElement.cs
- OdbcConnectionOpen.cs
- SessionKeyExpiredException.cs
- SizeChangedEventArgs.cs
- StorageEntitySetMapping.cs
- embossbitmapeffect.cs
- DrawingGroup.cs
- XmlArrayAttribute.cs
- IOException.cs
- WebEncodingValidator.cs
- AttachedPropertyDescriptor.cs
- ComboBoxAutomationPeer.cs
- AssemblySettingAttributes.cs
- UrlMapping.cs
- ExtendedPropertyDescriptor.cs
- ModuleConfigurationInfo.cs
- RegularExpressionValidator.cs
- DeviceContexts.cs
- ContentPlaceHolder.cs
- CompositeActivityTypeDescriptorProvider.cs
- TrackingValidationObjectDictionary.cs
- ImportCatalogPart.cs
- XmlSchema.cs
- NoResizeHandleGlyph.cs
- FrameworkContentElement.cs
- SafeLocalAllocation.cs
- wgx_exports.cs
- CompoundFileDeflateTransform.cs
- Journaling.cs
- DateTimeUtil.cs