File: System\Xml\Xsl\QIL\QilInvokeEarlyBound.cs
Project: ndp\fx\src\XmlUtils\System.Data.SqlXml.csproj (System.Data.SqlXml)
//------------------------------------------------------------------------------
// <copyright file="QilInvokeEarlyBound.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Reflection;
 
namespace System.Xml.Xsl.Qil {
 
    /// <summary>
    /// A function invocation node which reperesents a call to an early bound Clr function.
    /// </summary>
    internal class QilInvokeEarlyBound : QilTernary {
 
        //-----------------------------------------------
        // Constructor
        //-----------------------------------------------
 
        /// <summary>
        /// Construct a new node
        /// </summary>
        /// <param name="method">QilLiteral containing the Clr MethodInfo for the early bound function</param>
        public QilInvokeEarlyBound(QilNodeType nodeType, QilNode name, QilNode method, QilNode arguments, XmlQueryType resultType)
            : base(nodeType, name, method, arguments) {
            this.xmlType = resultType;
        }
 
 
        //-----------------------------------------------
        // QilInvokeEarlyBound methods
        //-----------------------------------------------
 
        public QilName Name {
            get { return (QilName) Left; }
            set { Left = value; }
        }
 
        public MethodInfo ClrMethod {
            get { return (MethodInfo) ((QilLiteral) Center).Value; }
            set { ((QilLiteral) Center).Value = value; }
        }
 
        public QilList Arguments {
            get { return (QilList) Right; }
            set { Right = value; }
        }
    }
}