MissingMemberException.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / MissingMemberException.cs / 1 / MissingMemberException.cs

                            // ==++== 
//
//   Copyright (c) Microsoft Corporation.  All rights reserved.
//
// ==--== 
/*==============================================================================
** 
** Class: MissingMemberException 
**
** 
** Purpose: The exception class for versioning problems with DLLS.
**
**
=============================================================================*/ 

namespace System { 
 
 	using System;
	using System.Runtime.Remoting; 
	using System.Runtime.Serialization;
	using System.Runtime.CompilerServices;
 	using System.Globalization;
        using System.Security.Permissions; 

    [System.Runtime.InteropServices.ComVisible(true)] 
    [Serializable] public class MissingMemberException : MemberAccessException, ISerializable { 
        public MissingMemberException()
            : base(Environment.GetResourceString("Arg_MissingMemberException")) { 
    		SetErrorCode(__HResults.COR_E_MISSINGMEMBER);
        }

        public MissingMemberException(String message) 
            : base(message) {
    		SetErrorCode(__HResults.COR_E_MISSINGMEMBER); 
        } 

        public MissingMemberException(String message, Exception inner) 
            : base(message, inner) {
    		SetErrorCode(__HResults.COR_E_MISSINGMEMBER);
        }
 
        protected MissingMemberException(SerializationInfo info, StreamingContext context) : base (info, context) {
            ClassName = (String)info.GetString("MMClassName"); 
            MemberName = (String)info.GetString("MMMemberName"); 
            Signature = (byte[])info.GetValue("MMSignature", typeof(byte[]));
        } 

    	public override String Message
        {
    		get { 
    	        if (ClassName == null) {
    		        return base.Message; 
    			} else { 
    				// do any desired fixups to classname here.
                    return String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("MissingMember_Name", 
                                                                       ClassName + "." + MemberName +
                                                                       (Signature != null ? " " + FormatSignature(Signature) : "")));
    		    }
    		} 
        }
 
        // Called to format signature 
        [MethodImplAttribute(MethodImplOptions.InternalCall)]
        internal static extern String FormatSignature(byte [] signature); 



        // Potentially called from the EE 
        private MissingMemberException(String className, String memberName, byte[] signature)
        { 
            ClassName   = className; 
            MemberName  = memberName;
            Signature   = signature; 
        }

        public MissingMemberException(String className, String memberName)
        { 
            ClassName   = className;
            MemberName  = memberName; 
        } 

	[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)] 		 
        public override void GetObjectData(SerializationInfo info, StreamingContext context) {
            if (info==null) {
                throw new ArgumentNullException("info");
            } 
            base.GetObjectData(info, context);
            info.AddValue("MMClassName", ClassName, typeof(String)); 
            info.AddValue("MMMemberName", MemberName, typeof(String)); 
            info.AddValue("MMSignature", Signature, typeof(byte[]));
        } 


        // If ClassName != null, GetMessage will construct on the fly using it
        // and the other variables. This allows customization of the 
        // format depending on the language environment.
        protected String  ClassName; 
        protected String  MemberName; 
        protected byte[]  Signature;
    } 
}
                        

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