2 // System.Configuration.ConfigurationException.cs
5 // Christopher Podurgiel (cpodurgiel@msn.com)
7 // (C) Ximian, Inc. http://www.ximian.com
13 namespace System.Configuration
17 /// ConfigurationException class.
20 /// Longer description
22 public class ConfigurationException : SystemException
25 private static string _stringBareMessage;
26 private static string _stringFilename;
27 private static int _intLine;
28 private static string _stringMessage;
31 /// ConfigurationException Constructor.
33 public ConfigurationException ()
35 _stringBareMessage = null;
36 _stringFilename = null;
38 _stringMessage = null;
42 /// ConfigurationException Constructor.
44 public ConfigurationException (string message)
46 _stringBareMessage = message;
47 _stringFilename = null;
49 _stringMessage = null;
53 /// ConfigurationException Constructor.
55 public ConfigurationException (string message, Exception inner)
57 _stringBareMessage = message + " " + inner.ToString();
58 _stringFilename = null;
60 _stringMessage = null;
64 /// ConfigurationException Constructor.
66 public ConfigurationException (string message, XmlNode node)
68 _stringBareMessage = message;
69 _stringFilename = GetXmlNodeFilename(node);
70 _intLine = GetXmlNodeLineNumber(node);
71 _stringMessage = _stringFilename + " " + _intLine;
75 /// ConfigurationException Constructor.
77 public ConfigurationException (string message, Exception inner, XmlNode
80 _stringBareMessage = message + " " + inner.ToString();
81 _stringFilename = GetXmlNodeFilename(node);
82 _intLine = GetXmlNodeLineNumber(node);
83 _stringMessage = _stringFilename + " " + _intLine;
87 /// ConfigurationException Constructor.
89 public ConfigurationException (string message, string filename, int line)
91 _stringBareMessage = message;
92 _stringFilename = filename;
94 _stringMessage = _stringFilename + " " + _intLine;
98 /// ConfigurationException Constructor.
100 public ConfigurationException (string message, Exception inner, string
103 _stringBareMessage = message + " " + inner.ToString();
104 _stringFilename = filename;
106 _stringMessage = _stringFilename + " " + _intLine;
112 /// Returns the name of the file containing the configuration section
115 /// <param name="node"></param>
116 /// <returns></returns>
117 public static string GetXmlNodeFilename(XmlNode node)
119 _stringFilename = node.OwnerDocument.Name;
120 return _stringFilename;
124 /// Returns the line number containing the configuration section node.
126 /// <param name="node"></param>
127 /// <returns></returns>
128 public static int GetXmlNodeLineNumber(XmlNode node)
131 //FIXME: not sure how this should work.
137 /// Gets the base error message.
139 public string BareMessage
143 return _stringBareMessage;
148 /// Gets the name of the configuration file where the error occurred.
150 public string Filename
154 return _stringFilename;
159 /// Returns the line number where the error occurred.
170 /// Gets a string containing the concatenated file name and line number
171 where the error occurred.
173 public override string Message
177 return _stringMessage;