EarlyBoundInfo.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / Runtime / EarlyBoundInfo.cs / 1305376 / EarlyBoundInfo.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
using System.Diagnostics;
using System.Reflection; 

namespace System.Xml.Xsl.Runtime {

    ///  
    /// This class contains information about early bound function objects.
    ///  
    internal sealed class EarlyBoundInfo { 
        private string namespaceUri;            // Namespace Uri mapped to these early bound functions
        private ConstructorInfo constrInfo;     // Constructor for the early bound function object 

        public EarlyBoundInfo(string namespaceUri, Type ebType) {
            Debug.Assert(namespaceUri != null && ebType != null);
 
            // Get the default constructor
            this.namespaceUri = namespaceUri; 
            this.constrInfo = ebType.GetConstructor(Type.EmptyTypes); 
            Debug.Assert(this.constrInfo != null, "The early bound object type " + ebType.FullName + " must have a public default constructor");
        } 

        /// 
        /// Get the Namespace Uri mapped to these early bound functions.
        ///  
        public string NamespaceUri { get { return this.namespaceUri; } }
 
        ///  
        /// Return the Clr Type of the early bound object.
        ///  
        public Type EarlyBoundType { get { return this.constrInfo.DeclaringType; } }

        /// 
        /// Create an instance of the early bound object. 
        /// 
        public object CreateObject() { return this.constrInfo.Invoke(new object[] {}); } 
 
        /// 
        /// Override Equals method so that EarlyBoundInfo to implement value comparison. 
        /// 
        public override bool Equals(object obj) {
            EarlyBoundInfo info = obj as EarlyBoundInfo;
            if (info == null) 
                return false;
 
            return this.namespaceUri == info.namespaceUri && this.constrInfo == info.constrInfo; 
        }
 
        /// 
        /// Override GetHashCode since Equals is overriden.
        /// 
        public override int GetHashCode() { 
            return this.namespaceUri.GetHashCode();
        } 
    } 
}
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
using System.Diagnostics;
using System.Reflection; 

namespace System.Xml.Xsl.Runtime {

    ///  
    /// This class contains information about early bound function objects.
    ///  
    internal sealed class EarlyBoundInfo { 
        private string namespaceUri;            // Namespace Uri mapped to these early bound functions
        private ConstructorInfo constrInfo;     // Constructor for the early bound function object 

        public EarlyBoundInfo(string namespaceUri, Type ebType) {
            Debug.Assert(namespaceUri != null && ebType != null);
 
            // Get the default constructor
            this.namespaceUri = namespaceUri; 
            this.constrInfo = ebType.GetConstructor(Type.EmptyTypes); 
            Debug.Assert(this.constrInfo != null, "The early bound object type " + ebType.FullName + " must have a public default constructor");
        } 

        /// 
        /// Get the Namespace Uri mapped to these early bound functions.
        ///  
        public string NamespaceUri { get { return this.namespaceUri; } }
 
        ///  
        /// Return the Clr Type of the early bound object.
        ///  
        public Type EarlyBoundType { get { return this.constrInfo.DeclaringType; } }

        /// 
        /// Create an instance of the early bound object. 
        /// 
        public object CreateObject() { return this.constrInfo.Invoke(new object[] {}); } 
 
        /// 
        /// Override Equals method so that EarlyBoundInfo to implement value comparison. 
        /// 
        public override bool Equals(object obj) {
            EarlyBoundInfo info = obj as EarlyBoundInfo;
            if (info == null) 
                return false;
 
            return this.namespaceUri == info.namespaceUri && this.constrInfo == info.constrInfo; 
        }
 
        /// 
        /// Override GetHashCode since Equals is overriden.
        /// 
        public override int GetHashCode() { 
            return this.namespaceUri.GetHashCode();
        } 
    } 
}
 

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