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
- GlyphInfoList.cs
- NavigateUrlConverter.cs
- StreamedWorkflowDefinitionContext.cs
- WCFBuildProvider.cs
- ScaleTransform3D.cs
- _ScatterGatherBuffers.cs
- NetDataContractSerializer.cs
- ManagedFilter.cs
- XmlSchemaIdentityConstraint.cs
- RsaEndpointIdentity.cs
- ConnectionManagementElementCollection.cs
- FontEmbeddingManager.cs
- StorageMappingItemLoader.cs
- PaginationProgressEventArgs.cs
- ScrollBar.cs
- TraceContext.cs
- StreamSecurityUpgradeInitiatorBase.cs
- FeatureSupport.cs
- XmlCollation.cs
- WSFederationHttpBinding.cs
- SecurityContextSecurityTokenParameters.cs
- SQLMembershipProvider.cs
- SafeSecurityHandles.cs
- SqlLiftIndependentRowExpressions.cs
- PrimitiveRenderer.cs
- ClientSideQueueItem.cs
- Knowncolors.cs
- XamlVector3DCollectionSerializer.cs
- Serializer.cs
- RecommendedAsConfigurableAttribute.cs
- WebPartDisplayMode.cs
- Attribute.cs
- ProtectedProviderSettings.cs
- ToolStripRenderer.cs
- BitmapEffectInputConnector.cs
- CreateUserWizard.cs
- HtmlInputSubmit.cs
- PropertyTabChangedEvent.cs
- GridViewColumnHeaderAutomationPeer.cs
- TraceListeners.cs
- IssuanceLicense.cs
- OleDbRowUpdatedEvent.cs
- Line.cs
- UnsafeMethods.cs
- XmlSchemaRedefine.cs
- SortedList.cs
- CommentEmitter.cs
- LoginName.cs
- BrowserCapabilitiesCompiler.cs
- WorkItem.cs
- CodeParameterDeclarationExpression.cs
- MergablePropertyAttribute.cs
- RadialGradientBrush.cs
- EventToken.cs
- WebPartZoneBase.cs
- RecognitionResult.cs
- Span.cs
- EpmSyndicationContentSerializer.cs
- HttpModulesSection.cs
- ErrorWebPart.cs
- BrowsableAttribute.cs
- HttpRuntimeSection.cs
- ColorMap.cs
- Vector3DAnimationBase.cs
- StorageEndPropertyMapping.cs
- DataGridCommandEventArgs.cs
- NameValueConfigurationElement.cs
- FactoryGenerator.cs
- ErrorTableItemStyle.cs
- CommandTreeTypeHelper.cs
- WebScriptMetadataInstanceContextProvider.cs
- LogManagementAsyncResult.cs
- XmlProcessingInstruction.cs
- RC2CryptoServiceProvider.cs
- ApplicationServiceHelper.cs
- CodeTypeReference.cs
- WorkflowOwnershipException.cs
- listitem.cs
- MDIControlStrip.cs
- MethodAccessException.cs
- DataKeyArray.cs
- XmlSchemaException.cs
- TableCellCollection.cs
- CellNormalizer.cs
- UniformGrid.cs
- TemplateKey.cs
- ScrollItemPattern.cs
- MonikerSyntaxException.cs
- LinqDataSourceContextData.cs
- Options.cs
- CallbackHandler.cs
- IDQuery.cs
- ResourceExpressionBuilder.cs
- WorkflowApplicationAbortedException.cs
- MDIControlStrip.cs
- PageThemeParser.cs
- SchemaTableOptionalColumn.cs
- ChannelRequirements.cs
- MulticastNotSupportedException.cs
- UnauthorizedWebPart.cs