Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / UriTemplateQueryValue.cs / 2 / UriTemplateQueryValue.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System { using System.Collections.Specialized; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Web; using System.ServiceModel.Channels; // This represents a Query value, which can either be Empty, a Literal or a Variable abstract class UriTemplateQueryValue { readonly UriTemplatePartType nature; static UriTemplateQueryValue empty = new EmptyUriTemplateQueryValue(); protected UriTemplateQueryValue(UriTemplatePartType nature) { this.nature = nature; } public static UriTemplateQueryValue Empty { get { return UriTemplateQueryValue.empty; } } public UriTemplatePartType Nature { get { return this.nature; } } public static UriTemplateQueryValue CreateFromUriTemplate(string value, UriTemplate template) { // Checking for empty value if (value == null) { return UriTemplateQueryValue.Empty; } // Identifying the type of value - Literal|Compound|Variable switch (UriTemplateHelpers.IdentifyPartType(value)) { case UriTemplatePartType.Literal: return UriTemplateLiteralQueryValue.CreateFromUriTemplate(value); case UriTemplatePartType.Compound: throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR2.GetString( SR2.UTQueryCannotHaveCompoundValue, template.originalTemplate))); case UriTemplatePartType.Variable: return new UriTemplateVariableQueryValue(template.AddQueryVariable(value.Substring(1, value.Length - 2))); default: Fx.Assert("Invalid value from IdentifyStringNature"); return null; } } public static bool IsNullOrEmpty(UriTemplateQueryValue utqv) { if (utqv == null) { return true; } if (utqv == UriTemplateQueryValue.Empty) { return true; } return false; } public abstract void Bind(string keyName, string[] values, ref int valueIndex, StringBuilder query); public abstract bool IsEquivalentTo(UriTemplateQueryValue other); public abstract void Lookup(string value, NameValueCollection boundParameters); class EmptyUriTemplateQueryValue : UriTemplateQueryValue { public EmptyUriTemplateQueryValue() : base(UriTemplatePartType.Literal) { } public override void Bind(string keyName, string[] values, ref int valueIndex, StringBuilder query) { query.AppendFormat("&{0}", UrlUtility.UrlEncode(keyName, Encoding.UTF8)); } public override bool IsEquivalentTo(UriTemplateQueryValue other) { return (other == UriTemplateQueryValue.Empty); } public override void Lookup(string value, NameValueCollection boundParameters) { Fx.Assert(string.IsNullOrEmpty(value), "shouldn't have a value"); } } } } // 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
- DeviceContexts.cs
- NetworkStream.cs
- BitSet.cs
- LinqDataSourceInsertEventArgs.cs
- SqlPersonalizationProvider.cs
- ListViewInsertedEventArgs.cs
- ProfileGroupSettings.cs
- SchemaType.cs
- AssociationSetMetadata.cs
- HTMLTextWriter.cs
- SymmetricAlgorithm.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- SqlDataSourceSelectingEventArgs.cs
- SBCSCodePageEncoding.cs
- SharedPersonalizationStateInfo.cs
- FragmentQueryProcessor.cs
- EventEntry.cs
- InitializationEventAttribute.cs
- _LocalDataStoreMgr.cs
- LookupNode.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- WebPartMenu.cs
- Predicate.cs
- OleTxTransaction.cs
- PathData.cs
- ContentElement.cs
- NavigationHelper.cs
- TypedAsyncResult.cs
- FormsAuthenticationUser.cs
- CodeDelegateCreateExpression.cs
- _HTTPDateParse.cs
- HashMembershipCondition.cs
- ObjectIDGenerator.cs
- RectAnimationClockResource.cs
- PropertyGeneratedEventArgs.cs
- PageOrientation.cs
- ToolStripPanelRenderEventArgs.cs
- __Filters.cs
- HandleInitializationContext.cs
- HwndStylusInputProvider.cs
- AspCompat.cs
- ChainOfDependencies.cs
- ContentFileHelper.cs
- XPathQilFactory.cs
- BitVector32.cs
- ChangeConflicts.cs
- RightsManagementEncryptionTransform.cs
- EventMappingSettings.cs
- MetadataArtifactLoaderResource.cs
- Signature.cs
- unsafenativemethodstextservices.cs
- ToolStripPanelCell.cs
- Assembly.cs
- UdpDiscoveryEndpoint.cs
- WebBrowser.cs
- FtpWebRequest.cs
- ParallelEnumerableWrapper.cs
- QilStrConcatenator.cs
- ExtensionSimplifierMarkupObject.cs
- InstanceLockLostException.cs
- SlipBehavior.cs
- XsltFunctions.cs
- ScrollBarRenderer.cs
- OrCondition.cs
- TabControlEvent.cs
- ListControl.cs
- ToolTip.cs
- DeflateStream.cs
- OAVariantLib.cs
- GridToolTip.cs
- webproxy.cs
- PolicyException.cs
- CompilationRelaxations.cs
- Freezable.cs
- SerTrace.cs
- HandlerMappingMemo.cs
- TimeIntervalCollection.cs
- GiveFeedbackEventArgs.cs
- ActivityValidator.cs
- FixUp.cs
- TreeViewEvent.cs
- SizeChangedEventArgs.cs
- SqlEnums.cs
- DataTableExtensions.cs
- DbConnectionStringBuilder.cs
- AggregateNode.cs
- FixedDocumentSequencePaginator.cs
- BinarySecretSecurityToken.cs
- OracleDataReader.cs
- ObfuscateAssemblyAttribute.cs
- PasswordRecoveryDesigner.cs
- AvTraceDetails.cs
- WebPartEditVerb.cs
- SystemWebCachingSectionGroup.cs
- PersonalizationStateQuery.cs
- QueueSurrogate.cs
- PrintingPermissionAttribute.cs
- PathFigureCollection.cs
- ToolBarTray.cs
- ToolboxComponentsCreatingEventArgs.cs