UriTemplateVariableQueryValue.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / UriTemplateVariableQueryValue.cs / 2 / UriTemplateVariableQueryValue.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;

    class UriTemplateVariableQueryValue : UriTemplateQueryValue
    { 
        readonly string varName;
 
        public UriTemplateVariableQueryValue(string varName) 
            : base(UriTemplatePartType.Variable)
        { 
            Fx.Assert(!string.IsNullOrEmpty(varName), "bad variable segment");
            this.varName = varName;
        }
        public override void Bind(string keyName, string[] values, ref int valueIndex, StringBuilder query) 
        {
            Fx.Assert(valueIndex < values.Length, "Not enough values to bind"); 
            if (values[valueIndex] == null) 
            {
                valueIndex++; 
            }
            else
            {
                query.AppendFormat("&{0}={1}", UrlUtility.UrlEncode(keyName, Encoding.UTF8), UrlUtility.UrlEncode(values[valueIndex++], Encoding.UTF8)); 
            }
        } 
 
        public override bool IsEquivalentTo(UriTemplateQueryValue other)
        { 
            if (other == null)
            {
                Fx.Assert("why would we ever call this?");
                return false; 
            }
            return (other.Nature == UriTemplatePartType.Variable); 
        } 
        public override void Lookup(string value, NameValueCollection boundParameters)
        { 
            boundParameters.Add(this.varName, value);
        }
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK