2002-09-13 Nick Drochak <ndrochak@gol.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
22                 public MissingMemberException ()
23                         : base (Locale.GetText ("A missing member exception has occurred."))
24                 {
25                 }
26
27                 public MissingMemberException (string message)
28                         : base (message)
29                 {
30                 }
31
32                 public MissingMemberException (string message, Exception inner)
33                         : base (message, inner)
34                 {
35                 }
36
37                 protected MissingMemberException (SerializationInfo info, StreamingContext context)
38                         : base (info, context)
39                 {
40                         ClassName = info.GetString ("MMClassName");
41                         MemberName = info.GetString ("MMMemberName");
42                         Signature = (byte[]) info.GetValue ("MMSignature", Signature.GetType ());
43                 }
44                 
45                 public MissingMemberException (string className, string memberName)
46                 {
47                         ClassName = className;
48                         MemberName = memberName;
49                 }
50
51                 // Methods
52                 public override void GetObjectData (SerializationInfo info, StreamingContext context)
53                 {
54                         base.GetObjectData (info, context);
55                         info.AddValue ("MMClassName", ClassName);
56                         info.AddValue ("MMMemberName", MemberName);
57                         info.AddValue ("MMSignature", Signature);
58                 }
59
60                 public override string Message {
61                         get {
62                                 if (ClassName == null)
63                                         return base.Message;
64                                 else
65                                         return "Member " + ClassName + "." + MemberName + " not found.";
66                         }
67                 }
68
69         }
70 }