2002-01-31 Duncan Mak <duncan@ximian.com>
[mono.git] / mcs / class / corlib / System / MissingMemberException.cs
1 //
2 // System.MissingMemberException.cs
3 //
4 // Author: Duncan Mak (duncan@ximian.com)
5 //
6 // (C) Ximian, Inc. http://www.ximian.com
7 //
8 using System;
9 using System.Globalization;
10 using System.Runtime.Serialization;
11
12 namespace System {
13
14         [Serializable]
15         public class MissingMemberException : MemberAccessException {
16
17                 // Fields
18                 protected string ClassName;
19                 protected string MemberName;
20                 protected byte[] Signature;
21                 private string msg;                
22
23                 // Constructors
24                 public MissingMemberException ()
25                         : base (Locale.GetText ("A missing member exception has occurred."))
26                 {
27                         msg = Locale.GetText ("A missing member exception has occured.");
28                 }
29
30                 public MissingMemberException (string message)
31                         : base (message)
32                 {
33                         msg = message;
34                 }
35
36                 protected MissingMemberException (SerializationInfo info, StreamingContext context)
37                         : base (info, context)
38                 {
39                         ClassName = info.GetString ("MMClassName");
40                         MemberName = info.GetString ("MMMemberName");
41                         Signature = (byte[]) info.GetValue ("MMSignature", Signature.GetType ());
42                 }
43                 
44                 public MissingMemberException (string message, Exception inner)
45                         : base (message, inner)
46                 {
47                         msg = message;
48                 }
49
50                 public MissingMemberException (string className, string memberName)
51                 {
52                         ClassName = className;
53                         MemberName = memberName;
54                 }
55
56                 // Properties
57                 public override string Message
58                 {
59                            get { return msg; }
60                 }
61
62                 // Methods
63                 public override void GetObjectData (SerializationInfo info, StreamingContext context)
64                 {
65                         base.GetObjectData (info, context);
66                         info.AddValue ("MMClassName", ClassName);
67                         info.AddValue ("MMMemberName", MemberName);
68                         info.AddValue ("MMSignature", Signature);
69                                 
70                 }
71                    
72         }
73 }