Wed Sep 11 15:26:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
[mono.git] / mcs / class / corlib / System / ArgumentOutOfRangeException.cs
index 923e06f93dc0318fc99e43f966f482b4d0218d43..e1253bb5ad14181da2396ed6b30968509f45e403 100644 (file)
@@ -3,14 +3,17 @@
 //
 // Author:
 //   Joe Shaw (joe@ximian.com)
+//   Duncan Mak (duncan@ximian.com)
 //
 // (C) 2001 Ximian, Inc.  http://www.ximian.com
 //
 
 using System.Globalization;
+using System.Runtime.Serialization;
 
 namespace System {
 
+       [Serializable]
        public class ArgumentOutOfRangeException : ArgumentException {
                private object actual_value;
 
@@ -36,11 +39,34 @@ namespace System {
                        this.actual_value = actual_value;
                }
 
+               protected ArgumentOutOfRangeException (SerializationInfo info, StreamingContext context)
+                       : base (info, context)
+               {
+                       actual_value = info.GetString ("ActualValue");
+               }
                // Properties
                public virtual object ActualValue {
                        get {
                                return actual_value;
                        }
                }
+
+               public override string Message {
+                       get {
+                               string basemsg = base.Message;
+                               if (actual_value == null)
+                                       return basemsg;
+                               return basemsg + '\n' + actual_value;
+                       }
+               }
+
+               // Methods
+               public override void GetObjectData (SerializationInfo info, StreamingContext context)
+               {
+                       base.GetObjectData (info, context);
+                       info.AddValue ("ActualValue", actual_value);
+               }
+               
        }
 }