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
- TransformerInfo.cs
- HebrewCalendar.cs
- _LazyAsyncResult.cs
- ConditionalDesigner.cs
- ConstructorBuilder.cs
- SecureConversationServiceElement.cs
- PerformanceCounters.cs
- HostingEnvironment.cs
- TypeUnloadedException.cs
- TemplatePartAttribute.cs
- DispatcherHooks.cs
- Faults.cs
- CipherData.cs
- DateTimeConverter.cs
- TranslateTransform.cs
- XmlCharType.cs
- basevalidator.cs
- ZipIOExtraFieldZip64Element.cs
- NotFiniteNumberException.cs
- MessageQueue.cs
- UpdateExpressionVisitor.cs
- EventRecordWrittenEventArgs.cs
- SafeViewOfFileHandle.cs
- StackSpiller.cs
- ListItemCollection.cs
- XsltSettings.cs
- NamedPipeTransportBindingElement.cs
- WebPartDescriptionCollection.cs
- TextRenderer.cs
- X509CertificateValidationMode.cs
- CategoryGridEntry.cs
- SqlDataReaderSmi.cs
- validationstate.cs
- ProfilePropertyMetadata.cs
- PrefixHandle.cs
- DbMetaDataCollectionNames.cs
- BindingListCollectionView.cs
- InvalidMessageContractException.cs
- ScriptingScriptResourceHandlerSection.cs
- _emptywebproxy.cs
- ToolStripItemCollection.cs
- ApplicationServiceManager.cs
- SecureConversationSecurityTokenParameters.cs
- SmuggledIUnknown.cs
- WebPartDisplayModeCollection.cs
- DbConnectionOptions.cs
- SequentialUshortCollection.cs
- ToolStripContentPanelRenderEventArgs.cs
- DbConnectionPoolGroup.cs
- HttpProfileGroupBase.cs
- DataRowChangeEvent.cs
- SmtpNegotiateAuthenticationModule.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- RelationshipNavigation.cs
- HyperLinkColumn.cs
- ConsumerConnectionPointCollection.cs
- GeneralTransform.cs
- OuterGlowBitmapEffect.cs
- CompositeActivityTypeDescriptor.cs
- MembershipPasswordException.cs
- ExceptionTranslationTable.cs
- ThumbButtonInfo.cs
- CodeVariableDeclarationStatement.cs
- StringOutput.cs
- DataTransferEventArgs.cs
- SelectorItemAutomationPeer.cs
- FocusChangedEventArgs.cs
- DateTimeSerializationSection.cs
- UnknownBitmapDecoder.cs
- DataObjectMethodAttribute.cs
- MasterPageBuildProvider.cs
- Configuration.cs
- NullableFloatMinMaxAggregationOperator.cs
- Funcletizer.cs
- ResourceReferenceExpression.cs
- TransactionException.cs
- TypeExtensionSerializer.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- ToolStripDropTargetManager.cs
- Point3D.cs
- DataBindingValueUIHandler.cs
- ClientConfigPaths.cs
- CacheSection.cs
- DesignerLinkAdapter.cs
- PropertyTabAttribute.cs
- DispatcherExceptionFilterEventArgs.cs
- XmlAnyElementAttribute.cs
- ToolboxBitmapAttribute.cs
- DbMetaDataCollectionNames.cs
- SocketAddress.cs
- ExpressionsCollectionConverter.cs
- DateTime.cs
- SplitterEvent.cs
- DependencyObjectPropertyDescriptor.cs
- ObjectListFieldsPage.cs
- StringWriter.cs
- PerfCounters.cs
- HttpListenerException.cs
- UnmanagedHandle.cs
- TableRowCollection.cs