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
- XmlCompatibilityReader.cs
- WebBrowserUriTypeConverter.cs
- ServiceObjectContainer.cs
- Transform3D.cs
- PermissionRequestEvidence.cs
- BlurEffect.cs
- GeneralTransform3DCollection.cs
- basevalidator.cs
- PersonalizationProviderCollection.cs
- HttpConfigurationSystem.cs
- InputLanguageManager.cs
- DurableInstance.cs
- ColorBlend.cs
- ValidationException.cs
- CachedFontFace.cs
- EventListener.cs
- MetadataArtifactLoaderCompositeFile.cs
- StoryFragments.cs
- PriorityBindingExpression.cs
- BooleanKeyFrameCollection.cs
- ClaimComparer.cs
- Button.cs
- BrowserDefinition.cs
- DataReceivedEventArgs.cs
- KnowledgeBase.cs
- BackgroundWorker.cs
- xdrvalidator.cs
- PipeConnection.cs
- Activity.cs
- DateTimePicker.cs
- Single.cs
- WebRequestModulesSection.cs
- DateTimeFormat.cs
- SymmetricCryptoHandle.cs
- selecteditemcollection.cs
- PrincipalPermission.cs
- RenderCapability.cs
- TreeNodeStyleCollection.cs
- AutomationIdentifierGuids.cs
- SHA384Managed.cs
- VectorKeyFrameCollection.cs
- SchemaMerger.cs
- WindowsScrollBar.cs
- Verify.cs
- BaseDataBoundControl.cs
- UITypeEditor.cs
- FontWeightConverter.cs
- XmlSchemaAppInfo.cs
- VersionedStreamOwner.cs
- NotFiniteNumberException.cs
- XmlName.cs
- DataServiceHostFactory.cs
- RectangleGeometry.cs
- IImplicitResourceProvider.cs
- IdentitySection.cs
- MediaElementAutomationPeer.cs
- LassoSelectionBehavior.cs
- HTMLTextWriter.cs
- DbTypeMap.cs
- SmtpDateTime.cs
- CopyOnWriteList.cs
- CompilerWrapper.cs
- grammarelement.cs
- AppSettingsExpressionBuilder.cs
- InputEventArgs.cs
- DSASignatureFormatter.cs
- SimpleMailWebEventProvider.cs
- EllipseGeometry.cs
- MediaSystem.cs
- odbcmetadatacolumnnames.cs
- HashSetDebugView.cs
- ObjectDataSourceDisposingEventArgs.cs
- HtmlInputImage.cs
- DataGridViewDataErrorEventArgs.cs
- WebPartEditorOkVerb.cs
- RootProfilePropertySettingsCollection.cs
- ScrollPattern.cs
- RotateTransform3D.cs
- DataGridBoolColumn.cs
- PolicyVersion.cs
- WebServicesSection.cs
- WebSysDescriptionAttribute.cs
- XamlFigureLengthSerializer.cs
- ProxyWebPart.cs
- SelectionItemProviderWrapper.cs
- TileBrush.cs
- CompModSwitches.cs
- RawAppCommandInputReport.cs
- ContractsBCL.cs
- TraceUtility.cs
- WorkItem.cs
- CompositeScriptReference.cs
- BamlResourceSerializer.cs
- FieldBuilder.cs
- StreamReader.cs
- RemotingConfigParser.cs
- EntityDataSourceWizardForm.cs
- ToolTip.cs
- __Error.cs
- SafeLibraryHandle.cs