// System.Configuration.ConfigurationException.cs
//
// Author:
-// Christopher Podurgiel (cpodurgiel@msn.com)
+// Duncan Mak (duncan@ximian.com)
//
-// (C) Chris Podurgiel
-//\r
-using System;\rusing System.Xml;\r
-namespace System.Configuration \r{\r /// <summary>\r /// ConfigurationException class.\r /// </summary>\r /// <remarks>\r /// Longer description\r /// </remarks>\r public class ConfigurationException : SystemException\r {\r \r private static string _stringBareMessage;\r private static string _stringFilename;\r private static int _intLine;\r private static string _stringMessage;\r\r /// <summary>\r /// ConfigurationException Constructor.\r /// </summary>\r public ConfigurationException ()\r {\r _stringBareMessage = null;\r _stringFilename = null;\r _intLine = 0;\r _stringMessage = null; \r }\r \r /// <summary>\r /// ConfigurationException Constructor.\r /// </summary>\r public ConfigurationException (string message)\r : base (message)\r {\r _stringBareMessage = message;\r _stringFilename = null;\r _intLine = 0;\r _stringMessage = null;\r }\r\r /// <summary>\r /// ConfigurationException Constructor.\r /// </summary>\r public ConfigurationException (string message, Exception inner)\r : base (message)\r {\r _stringBareMessage = message + " " + inner.ToString();\r _stringFilename = null;\r _intLine = 0;\r _stringMessage = null; \r }\r\r /// <summary>\r /// ConfigurationException Constructor.\r /// </summary>\r public ConfigurationException (string message, XmlNode node)\r : base (message)\r {\r _stringBareMessage = message;\r _stringFilename = GetXmlNodeFilename(node);\r _intLine = GetXmlNodeLineNumber(node);\r _stringMessage = _stringFilename + " " + _intLine;\r }\r\r /// <summary>\r /// ConfigurationException Constructor.\r /// </summary>\r public ConfigurationException (string message, Exception inner, XmlNode node)\r : base (message)\r {\r _stringBareMessage = message + " " + inner.ToString();\r _stringFilename = GetXmlNodeFilename(node);\r _intLine = GetXmlNodeLineNumber(node);\r _stringMessage = _stringFilename + " " + _intLine;\r }\r\r /// <summary>\r /// ConfigurationException Constructor.\r /// </summary>\r public ConfigurationException (string message, string filename, int line)\r : base (message)\r {\r _stringBareMessage = message;\r _stringFilename = filename;\r _intLine = line;\r _stringMessage = _stringFilename + " " + _intLine;\r }\r\r /// <summary>\r /// ConfigurationException Constructor.\r /// </summary>\r public ConfigurationException (string message, Exception inner, string filename, int line)\r : base (message)\r {\r _stringBareMessage = message + " " + inner.ToString();\r _stringFilename = filename;\r _intLine = line;\r _stringMessage = _stringFilename + " " + _intLine;\r }\r\r\r \r /// <summary>\r /// Returns the name of the file containing the configuration section node.\r /// </summary>\r /// <param name="node"></param>\r /// <returns></returns>\r public static string GetXmlNodeFilename(XmlNode node)\r {\r _stringFilename = node.OwnerDocument.Name;\r return _stringFilename;\r }\r\r /// <summary>\r /// Returns the line number containing the configuration section node.\r /// </summary>\r /// <param name="node"></param>\r /// <returns></returns>\r public static int GetXmlNodeLineNumber(XmlNode node)\r {\r //FIXME: not sure how this should work.\r return 0;\r }\r\r\r /// <summary>\r /// Gets the base error message.\r /// </summary>\r public string BareMessage\r {\r get \r {\r return _stringBareMessage;\r }\r }\r\r /// <summary>\r /// Gets the name of the configuration file where the error occurred.\r /// </summary>\r public string Filename\r {\r get \r {\r return _stringFilename;\r }\r }\r\r /// <summary>\r /// Returns the line number where the error occurred.\r /// </summary>\r public int Line\r {\r get \r {\r return _intLine;\r }\r }\r\r /// <summary>\r /// Gets a string containing the concatenated file name and line number where the error occurred.\r /// </summary>\r public override string Message\r {
- get \r {\r return _stringMessage;\r }\r }\r }\r}\r
\ No newline at end of file
+// (C) Ximian, Inc. http://www.ximian.com
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Globalization;
+using System.Runtime.Serialization;
+
+#if (XML_DEP)
+using System.Xml;
+#endif
+
+namespace System.Configuration
+{
+ [Serializable]
+ public class ConfigurationException : SystemException
+ {
+ // Fields
+ string bareMessage;
+ string filename;
+ int line;
+
+ //
+ // Constructors
+ //
+#if NET_2_0
+ [Obsolete ("This class is obsolete. Use System.Configuration.ConfigurationErrorsException")]
+#endif
+ public ConfigurationException ()
+ : base (Locale.GetText ("There is an error in a configuration setting."))
+ {
+ filename = null;
+ bareMessage = Locale.GetText ("There is an error in a configuration setting.");
+ line = 0;
+ }
+
+#if NET_2_0
+ [Obsolete ("This class is obsolete. Use System.Configuration.ConfigurationErrorsException")]
+#endif
+ public ConfigurationException (string message)
+ : base (message)
+ {
+ bareMessage = message;
+ }
+
+ protected ConfigurationException (SerializationInfo info, StreamingContext context)
+ : base (info, context)
+ {
+ filename = info.GetString ("filename");
+ line = info.GetInt32 ("line");
+ }
+
+#if NET_2_0
+ [Obsolete ("This class is obsolete. Use System.Configuration.ConfigurationErrorsException")]
+#endif
+ public ConfigurationException (string message, Exception inner)
+ : base (message, inner)
+ {
+ bareMessage = message;
+ }
+
+#if (XML_DEP)
+#if NET_2_0
+ [Obsolete ("This class is obsolete. Use System.Configuration.ConfigurationErrorsException")]
+#endif
+ public ConfigurationException (string message, XmlNode node)
+ : base (message)
+ {
+ filename = GetXmlNodeFilename(node);
+ line = GetXmlNodeLineNumber(node);
+ bareMessage = message;
+ }
+
+#if NET_2_0
+ [Obsolete ("This class is obsolete. Use System.Configuration.ConfigurationErrorsException")]
+#endif
+ public ConfigurationException (string message, Exception inner, XmlNode node)
+ : base (message, inner)
+ {
+ filename = GetXmlNodeFilename (node);
+ line = GetXmlNodeLineNumber (node);
+ bareMessage = message;
+ }
+#endif
+#if NET_2_0
+ [Obsolete ("This class is obsolete. Use System.Configuration.ConfigurationErrorsException")]
+#endif
+ public ConfigurationException (string message, string filename, int line)
+ : base (message)
+ {
+ bareMessage = message;
+ this.filename = filename;
+ this.line= line;
+ }
+
+#if NET_2_0
+ [Obsolete ("This class is obsolete. Use System.Configuration.ConfigurationErrorsException")]
+#endif
+ public ConfigurationException (string message, Exception inner, string filename, int line)
+ : base (message)
+ {
+ bareMessage = message;
+ this.filename = filename;
+ this.line = line;
+ }
+ //
+ // Properties
+ //
+ public
+#if NET_2_0
+ virtual
+#endif
+ string BareMessage
+ {
+ get { return bareMessage; }
+ }
+
+ public
+#if NET_2_0
+ virtual
+#endif
+ string Filename
+ {
+ get { return filename; }
+ }
+
+ public
+#if NET_2_0
+ virtual
+#endif
+ int Line
+ {
+ get { return line; }
+ }
+
+ public override string Message
+ {
+ get {
+ string baseMsg = base.Message;
+ string f = (filename == null) ? String.Empty : filename;
+ string l = (line == 0) ? String.Empty : (" line " + line);
+
+ return baseMsg + " (" + f + l + ")";
+ }
+ }
+
+ //
+ // Methods
+ //
+#if (XML_DEP)
+#if NET_2_0
+ [Obsolete ("This class is obsolete. Use System.Configuration.ConfigurationErrorsException")]
+#endif
+ public static string GetXmlNodeFilename (XmlNode node)
+ {
+ if (!(node is IConfigXmlNode))
+ return String.Empty;
+
+ return ((IConfigXmlNode) node).Filename;
+ }
+
+#if NET_2_0
+ [Obsolete ("This class is obsolete. Use System.Configuration.ConfigurationErrorsException")]
+#endif
+ public static int GetXmlNodeLineNumber (XmlNode node)
+ {
+ if (!(node is IConfigXmlNode))
+ return 0;
+
+ return ((IConfigXmlNode) node).LineNumber;
+ }
+#endif
+ public override void GetObjectData (SerializationInfo info, StreamingContext context)
+ {
+ base.GetObjectData (info, context);
+ info.AddValue ("filename", filename);
+ info.AddValue ("line", line);
+ }
+ }
+}