2004-03-09 Andreas Nahr <ClassDevelopment@A-SoftTech.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
9 using System.Runtime.Serialization;
10
11 namespace System
12 {
13         [Serializable]
14         public class MissingMemberException : MemberAccessException
15         {
16                 // Fields
17                 protected string ClassName;
18                 protected string MemberName;
19                 protected byte[] Signature;
20
21                 public MissingMemberException ()
22                         : base (Locale.GetText ("Cannot find the requested class member."))
23                 {
24                 }
25
26                 public MissingMemberException (string message)
27                         : base (message)
28                 {
29                 }
30
31                 public MissingMemberException (string message, Exception inner)
32                         : base (message, inner)
33                 {
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 className, string memberName)
45                 {
46                         ClassName = className;
47                         MemberName = memberName;
48                 }
49
50                 // Methods
51                 public override void GetObjectData (SerializationInfo info, StreamingContext context)
52                 {
53                         base.GetObjectData (info, context);
54                         info.AddValue ("MMClassName", ClassName);
55                         info.AddValue ("MMMemberName", MemberName);
56                         info.AddValue ("MMSignature", Signature);
57                 }
58
59                 public override string Message {
60                         get {
61                                 if (ClassName == null)
62                                         return base.Message;
63                                 else
64                                         return "Member " + ClassName + "." + MemberName + " not found.";
65                         }
66                 }
67         }
68 }