ParameterReplacerVisitor.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / ALinq / ParameterReplacerVisitor.cs / 1 / ParameterReplacerVisitor.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
//      Provides an expression visitor that can replace a ParameterExpression.
//  
// 
// @owner  [....], [....]
//--------------------------------------------------------------------- 
namespace System.Data.Services.Client
{
    using System;
    using System.Collections.Generic; 
    using System.Linq.Expressions;
    using System.Diagnostics; 
 
    /// Provides an expression visitor that can replace a .
    internal class ParameterReplacerVisitor : ExpressionVisitor 
    {
        /// Expression to replace with.
        private Expression newExpression;
 
        /// Parameter to replace.
        private ParameterExpression oldParameter; 
 
        /// Initializes a new  instance.
        /// Parameter to replace. 
        /// Expression to replace with.
        private ParameterReplacerVisitor(ParameterExpression oldParameter, Expression newExpression)
        {
            this.oldParameter = oldParameter; 
            this.newExpression = newExpression;
        } 
 
        /// 
        /// Replaces the occurences of  for  in 
        /// .
        /// 
        /// Expression to perform replacement on.
        /// Parameter to replace. 
        /// Expression to replace with.
        /// A new expression with the replacement performed. 
        internal static Expression Replace(Expression expression, ParameterExpression oldParameter, Expression newExpression) 
        {
            Debug.Assert(expression != null, "expression != null"); 
            Debug.Assert(oldParameter != null, "oldParameter != null");
            Debug.Assert(newExpression != null, "newExpression != null");
            return new ParameterReplacerVisitor(oldParameter, newExpression).Visit(expression);
        } 

        /// ParameterExpression visit method. 
        /// The ParameterExpression expression to visit 
        /// The visited ParameterExpression expression 
        internal override Expression VisitParameter(ParameterExpression p) 
        {
            if (p == this.oldParameter)
            {
                return this.newExpression; 
            }
            else 
            { 
                return p;
            } 
        }
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
//      Provides an expression visitor that can replace a ParameterExpression.
//  
// 
// @owner  [....], [....]
//--------------------------------------------------------------------- 
namespace System.Data.Services.Client
{
    using System;
    using System.Collections.Generic; 
    using System.Linq.Expressions;
    using System.Diagnostics; 
 
    /// Provides an expression visitor that can replace a .
    internal class ParameterReplacerVisitor : ExpressionVisitor 
    {
        /// Expression to replace with.
        private Expression newExpression;
 
        /// Parameter to replace.
        private ParameterExpression oldParameter; 
 
        /// Initializes a new  instance.
        /// Parameter to replace. 
        /// Expression to replace with.
        private ParameterReplacerVisitor(ParameterExpression oldParameter, Expression newExpression)
        {
            this.oldParameter = oldParameter; 
            this.newExpression = newExpression;
        } 
 
        /// 
        /// Replaces the occurences of  for  in 
        /// .
        /// 
        /// Expression to perform replacement on.
        /// Parameter to replace. 
        /// Expression to replace with.
        /// A new expression with the replacement performed. 
        internal static Expression Replace(Expression expression, ParameterExpression oldParameter, Expression newExpression) 
        {
            Debug.Assert(expression != null, "expression != null"); 
            Debug.Assert(oldParameter != null, "oldParameter != null");
            Debug.Assert(newExpression != null, "newExpression != null");
            return new ParameterReplacerVisitor(oldParameter, newExpression).Visit(expression);
        } 

        /// ParameterExpression visit method. 
        /// The ParameterExpression expression to visit 
        /// The visited ParameterExpression expression 
        internal override Expression VisitParameter(ParameterExpression p) 
        {
            if (p == this.oldParameter)
            {
                return this.newExpression; 
            }
            else 
            { 
                return p;
            } 
        }
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

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