TypeLoadException.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 / clr / src / BCL / System / TypeLoadException.cs / 1305376 / TypeLoadException.cs

                            // ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
/*==============================================================================
** 
** Class: TypeLoadException 
**
** 
** Purpose: The exception class for type loading failures.
**
**
=============================================================================*/ 
namespace System {
 
    using System; 
    using System.Globalization;
    using System.Runtime.Remoting; 
    using System.Runtime.Serialization;
    using System.Runtime.InteropServices;
    using System.Runtime.CompilerServices;
    using System.Runtime.Versioning; 
    using System.Security;
    using System.Security.Permissions; 
    using System.Diagnostics.Contracts; 

    [Serializable] 
[System.Runtime.InteropServices.ComVisible(true)]
    public class TypeLoadException : SystemException, ISerializable {

        public TypeLoadException() 
            : base(Environment.GetResourceString("Arg_TypeLoadException")) {
            SetErrorCode(__HResults.COR_E_TYPELOAD); 
        } 

        public TypeLoadException(String message) 
            : base(message) {
            SetErrorCode(__HResults.COR_E_TYPELOAD);
        }
 
        public TypeLoadException(String message, Exception inner)
            : base(message, inner) { 
            SetErrorCode(__HResults.COR_E_TYPELOAD); 
        }
 
        public override String Message
        {
            [System.Security.SecuritySafeCritical]  // auto-generated
            get { 
                SetMessageField();
                return _message; 
            } 
        }
 
        [System.Security.SecurityCritical]  // auto-generated
        private void SetMessageField()
        {
            if (_message == null) { 
                if ((ClassName == null) &&
                    (ResourceId == 0)) 
                    _message = Environment.GetResourceString("Arg_TypeLoadException"); 

                else { 
                    if (AssemblyName == null)
                        AssemblyName = Environment.GetResourceString("IO_UnknownFileName");
                    if (ClassName == null)
                        ClassName = Environment.GetResourceString("IO_UnknownFileName"); 

                    String format = null; 
                    GetTypeLoadExceptionMessage(ResourceId, JitHelpers.GetStringHandleOnStack(ref format)); 
                    _message = String.Format(CultureInfo.CurrentCulture, format, ClassName, AssemblyName, MessageArg);
                } 
            }
        }

        public String TypeName 
        {
            get { 
                if (ClassName == null) 
                    return String.Empty;
 
                return ClassName;
            }
        }
 
        // This is called from inside the EE.
        [System.Security.SecurityCritical]  // auto-generated 
        private TypeLoadException(String className, 
                                  String assemblyName,
                                  String messageArg, 
                                  int    resourceId)
        : base(null)
        {
            SetErrorCode(__HResults.COR_E_TYPELOAD); 
            ClassName  = className;
            AssemblyName = assemblyName; 
            MessageArg = messageArg; 
            ResourceId = resourceId;
 
            // Set the _message field eagerly; debuggers look at this field to
            // display error info. They don't call the Message property.
            SetMessageField();
        } 

        [System.Security.SecuritySafeCritical]  // auto-generated 
        protected TypeLoadException(SerializationInfo info, StreamingContext context) : base(info, context) { 
            if (info == null)
                throw new ArgumentNullException("info"); 
            Contract.EndContractBlock();

            ClassName =  info.GetString("TypeLoadClassName");
            AssemblyName = info.GetString("TypeLoadAssemblyName"); 
            MessageArg = info.GetString("TypeLoadMessageArg");
            ResourceId = info.GetInt32("TypeLoadResourceID"); 
        } 

        [System.Security.SecurityCritical]  // auto-generated 
        [ResourceExposure(ResourceScope.None)]
        [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
        [SuppressUnmanagedCodeSecurity]
        private static extern void GetTypeLoadExceptionMessage(int resourceId, StringHandleOnStack retString); 

        //We can rely on the serialization mechanism on Exception to handle most of our needs, but 
        //we need to add a few fields of our own. 
        [System.Security.SecurityCritical]  // auto-generated_required
        public override void GetObjectData(SerializationInfo info, StreamingContext context) { 
            if (info == null)
                throw new ArgumentNullException("info");
            Contract.EndContractBlock();
 
            base.GetObjectData(info, context);
            info.AddValue("TypeLoadClassName", ClassName, typeof(String)); 
            info.AddValue("TypeLoadAssemblyName", AssemblyName, typeof(String)); 
            info.AddValue("TypeLoadMessageArg", MessageArg, typeof(String));
            info.AddValue("TypeLoadResourceID", ResourceId); 
        }

        // If ClassName != null, GetMessage will construct on the fly using it
        // and ResourceId (mscorrc.dll). This allows customization of the 
        // class name format depending on the language environment.
        private String  ClassName; 
        private String  AssemblyName; 
        private String  MessageArg;
        internal int    ResourceId; 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
/*==============================================================================
** 
** Class: TypeLoadException 
**
** 
** Purpose: The exception class for type loading failures.
**
**
=============================================================================*/ 
namespace System {
 
    using System; 
    using System.Globalization;
    using System.Runtime.Remoting; 
    using System.Runtime.Serialization;
    using System.Runtime.InteropServices;
    using System.Runtime.CompilerServices;
    using System.Runtime.Versioning; 
    using System.Security;
    using System.Security.Permissions; 
    using System.Diagnostics.Contracts; 

    [Serializable] 
[System.Runtime.InteropServices.ComVisible(true)]
    public class TypeLoadException : SystemException, ISerializable {

        public TypeLoadException() 
            : base(Environment.GetResourceString("Arg_TypeLoadException")) {
            SetErrorCode(__HResults.COR_E_TYPELOAD); 
        } 

        public TypeLoadException(String message) 
            : base(message) {
            SetErrorCode(__HResults.COR_E_TYPELOAD);
        }
 
        public TypeLoadException(String message, Exception inner)
            : base(message, inner) { 
            SetErrorCode(__HResults.COR_E_TYPELOAD); 
        }
 
        public override String Message
        {
            [System.Security.SecuritySafeCritical]  // auto-generated
            get { 
                SetMessageField();
                return _message; 
            } 
        }
 
        [System.Security.SecurityCritical]  // auto-generated
        private void SetMessageField()
        {
            if (_message == null) { 
                if ((ClassName == null) &&
                    (ResourceId == 0)) 
                    _message = Environment.GetResourceString("Arg_TypeLoadException"); 

                else { 
                    if (AssemblyName == null)
                        AssemblyName = Environment.GetResourceString("IO_UnknownFileName");
                    if (ClassName == null)
                        ClassName = Environment.GetResourceString("IO_UnknownFileName"); 

                    String format = null; 
                    GetTypeLoadExceptionMessage(ResourceId, JitHelpers.GetStringHandleOnStack(ref format)); 
                    _message = String.Format(CultureInfo.CurrentCulture, format, ClassName, AssemblyName, MessageArg);
                } 
            }
        }

        public String TypeName 
        {
            get { 
                if (ClassName == null) 
                    return String.Empty;
 
                return ClassName;
            }
        }
 
        // This is called from inside the EE.
        [System.Security.SecurityCritical]  // auto-generated 
        private TypeLoadException(String className, 
                                  String assemblyName,
                                  String messageArg, 
                                  int    resourceId)
        : base(null)
        {
            SetErrorCode(__HResults.COR_E_TYPELOAD); 
            ClassName  = className;
            AssemblyName = assemblyName; 
            MessageArg = messageArg; 
            ResourceId = resourceId;
 
            // Set the _message field eagerly; debuggers look at this field to
            // display error info. They don't call the Message property.
            SetMessageField();
        } 

        [System.Security.SecuritySafeCritical]  // auto-generated 
        protected TypeLoadException(SerializationInfo info, StreamingContext context) : base(info, context) { 
            if (info == null)
                throw new ArgumentNullException("info"); 
            Contract.EndContractBlock();

            ClassName =  info.GetString("TypeLoadClassName");
            AssemblyName = info.GetString("TypeLoadAssemblyName"); 
            MessageArg = info.GetString("TypeLoadMessageArg");
            ResourceId = info.GetInt32("TypeLoadResourceID"); 
        } 

        [System.Security.SecurityCritical]  // auto-generated 
        [ResourceExposure(ResourceScope.None)]
        [DllImport(JitHelpers.QCall, CharSet = CharSet.Unicode)]
        [SuppressUnmanagedCodeSecurity]
        private static extern void GetTypeLoadExceptionMessage(int resourceId, StringHandleOnStack retString); 

        //We can rely on the serialization mechanism on Exception to handle most of our needs, but 
        //we need to add a few fields of our own. 
        [System.Security.SecurityCritical]  // auto-generated_required
        public override void GetObjectData(SerializationInfo info, StreamingContext context) { 
            if (info == null)
                throw new ArgumentNullException("info");
            Contract.EndContractBlock();
 
            base.GetObjectData(info, context);
            info.AddValue("TypeLoadClassName", ClassName, typeof(String)); 
            info.AddValue("TypeLoadAssemblyName", AssemblyName, typeof(String)); 
            info.AddValue("TypeLoadMessageArg", MessageArg, typeof(String));
            info.AddValue("TypeLoadResourceID", ResourceId); 
        }

        // If ClassName != null, GetMessage will construct on the fly using it
        // and ResourceId (mscorrc.dll). This allows customization of the 
        // class name format depending on the language environment.
        private String  ClassName; 
        private String  AssemblyName; 
        private String  MessageArg;
        internal int    ResourceId; 
    }
}

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