InputReferenceExpression.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / ALinq / InputReferenceExpression.cs / 1305376 / InputReferenceExpression.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
//      Respresents a reference to a resource set in a resource bound expression tree.
//  
// 
// @owner  [....]
//--------------------------------------------------------------------- 
namespace System.Data.Services.Client
{
    using System;
    using System.Diagnostics; 
    using System.Linq.Expressions;
 
    ///  
    /// Represents a reference to a bound resource set in the resource path.
    /// The type of the input reference is the element type of the set. 
    /// 
    /// 
    /// Because the type of the input reference is the element type of the set,
    /// it can be used to indicate what a range variable ranges over. 
    ///
    /// For example, in input.Select(b => b.id), 'input' is an IQueryable of T, 
    /// and 'b' is a parameter of type T. 'b' can be rebound as an input reference 
    /// to 'input' by the InputBinder, which helps in query analysis and
    /// translation. 
    /// 
    [DebuggerDisplay("InputReferenceExpression -> {Type}")]
    internal sealed class InputReferenceExpression : Expression
    { 
        /// The resource or set referred to by this input reference expression
        private ResourceExpression target; 
 
        /// 
        /// Constructs a new input reference expression that refers to the specified resource set 
        /// 
        /// The target resource set that the new expression will reference
#pragma warning disable 618
        internal InputReferenceExpression(ResourceExpression target) 
            : base((ExpressionType)ResourceExpressionType.InputReference, target.ResourceType)
        { 
            Debug.Assert(target != null, "Target resource set cannot be null"); 
            this.target = target;
        } 
#pragma warning restore 618

        /// 
        /// Retrieves the resource set referred to by this input reference expression 
        /// 
        internal ResourceExpression Target 
        { 
            get { return this.target; }
        } 

        /// 
        /// Retargets this input reference to point to the resource set specified by .
        ///  
        /// The  that this input reference should use as its target
        internal void OverrideTarget(ResourceSetExpression newTarget) 
        { 
            Debug.Assert(newTarget != null, "Resource set cannot be null");
            Debug.Assert(newTarget.ResourceType.Equals(this.Type), "Cannot reference a resource set with a different resource type"); 

            this.target = newTarget;
        }
    } 
}

// 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