// // System.Configuration.ConfigurationException.cs // // Author: // Christopher Podurgiel (cpodurgiel@msn.com) // // (C) Ximian, Inc. http://www.ximian.com // using System; using System.Xml; namespace System.Configuration { /// /// ConfigurationException class. /// /// /// Longer description /// public class ConfigurationException : SystemException { private static string _stringBareMessage; private static string _stringFilename; private static int _intLine; private static string _stringMessage; /// /// ConfigurationException Constructor. /// public ConfigurationException () { _stringBareMessage = null; _stringFilename = null; _intLine = 0; _stringMessage = null; } /// /// ConfigurationException Constructor. /// public ConfigurationException (string message) { _stringBareMessage = message; _stringFilename = null; _intLine = 0; _stringMessage = null; } /// /// ConfigurationException Constructor. /// public ConfigurationException (string message, Exception inner) { _stringBareMessage = message + " " + inner.ToString(); _stringFilename = null; _intLine = 0; _stringMessage = null; } /// /// ConfigurationException Constructor. /// public ConfigurationException (string message, XmlNode node) { _stringBareMessage = message; _stringFilename = GetXmlNodeFilename(node); _intLine = GetXmlNodeLineNumber(node); _stringMessage = _stringFilename + " " + _intLine; } /// /// ConfigurationException Constructor. /// public ConfigurationException (string message, Exception inner, XmlNode node) { _stringBareMessage = message + " " + inner.ToString(); _stringFilename = GetXmlNodeFilename(node); _intLine = GetXmlNodeLineNumber(node); _stringMessage = _stringFilename + " " + _intLine; } /// /// ConfigurationException Constructor. /// public ConfigurationException (string message, string filename, int line) { _stringBareMessage = message; _stringFilename = filename; _intLine = line; _stringMessage = _stringFilename + " " + _intLine; } /// /// ConfigurationException Constructor. /// public ConfigurationException (string message, Exception inner, string filename, int line) { _stringBareMessage = message + " " + inner.ToString(); _stringFilename = filename; _intLine = line; _stringMessage = _stringFilename + " " + _intLine; } /// /// Returns the name of the file containing the configuration section node. /// /// /// public static string GetXmlNodeFilename(XmlNode node) { _stringFilename = node.OwnerDocument.Name; return _stringFilename; } /// /// Returns the line number containing the configuration section node. /// /// /// public static int GetXmlNodeLineNumber(XmlNode node) { //FIXME: not sure how this should work. return 0; } /// /// Gets the base error message. /// public string BareMessage { get { return _stringBareMessage; } } /// /// Gets the name of the configuration file where the error occurred. /// public string Filename { get { return _stringFilename; } } /// /// Returns the line number where the error occurred. /// public int Line { get { return _intLine; } } /// /// Gets a string containing the concatenated file name and line number where the error occurred. /// public override string Message { get { return _stringMessage; } } } }