// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
+#if CONFIGURATION_DEP
+using System.Configuration.Internal;
+#endif
using System.IO;
using System.Security;
using System.Security.Permissions;
{
[PermissionSet (SecurityAction.LinkDemand, Unrestricted = true)]
public sealed class ConfigXmlDocument : XmlDocument, IConfigXmlNode
+#if CONFIGURATION_DEP
+ , IConfigErrorInfo
+#endif
{
XmlTextReader reader;
string fileName;
public override void Load (string filename)
{
XmlTextReader rd = new XmlTextReader (filename);
- rd.MoveToContent ();
- LoadSingleElement (filename, rd);
+ try {
+ rd.MoveToContent ();
+ LoadSingleElement (filename, rd);
+ } finally {
+ rd.Close ();
+ }
}
public void LoadSingleElement (string filename, XmlTextReader sourceReader)
}
}
+#if CONFIGURATION_DEP
+ string System.Configuration.Internal.IConfigErrorInfo.Filename {
+ get { return Filename; }
+ }
+
+ int System.Configuration.Internal.IConfigErrorInfo.LineNumber {
+ get { return LineNumber; }
+ }
+#endif
+
+ string IConfigXmlNode.Filename {
+ get { return Filename; }
+ }
+
+ int IConfigXmlNode.LineNumber {
+ get { return LineNumber; }
+ }
+
//
// Wrappers for Xml* that just provide file name and line number addition
//
class ConfigXmlAttribute : XmlAttribute, IConfigXmlNode
+#if CONFIGURATION_DEP
+ , IConfigErrorInfo
+#endif
{
string fileName;
int lineNumber;
}
class ConfigXmlCDataSection : XmlCDataSection, IConfigXmlNode
+#if CONFIGURATION_DEP
+ , IConfigErrorInfo
+#endif
{
string fileName;
int lineNumber;
}
class ConfigXmlElement : XmlElement, IConfigXmlNode
+#if CONFIGURATION_DEP
+ , IConfigErrorInfo
+#endif
{
string fileName;
int lineNumber;
}
class ConfigXmlText : XmlText, IConfigXmlNode
+#if CONFIGURATION_DEP
+ , IConfigErrorInfo
+#endif
{
string fileName;
int lineNumber;