Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Sys / System / Configuration / ConfigXmlDocument.cs / 1 / ConfigXmlDocument.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Configuration
{
using System.Configuration.Internal;
using System.IO;
using System.Xml;
using System.Security.Permissions;
// ConfigXmlDocument - the default Xml Document doesn't track line numbers, and line
// numbers are necessary to display source on config errors.
// These classes wrap corresponding System.Xml types and also carry
// the necessary information for reporting filename / line numbers.
// Note: these classes will go away if webdata ever decides to incorporate line numbers
// into the default XML classes. This class could also go away if webdata brings back
// the UserData property to hang any info off of any node.
[PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
public sealed class ConfigXmlDocument : XmlDocument, IConfigErrorInfo {
XmlTextReader _reader;
int _lineOffset;
string _filename;
int IConfigErrorInfo.LineNumber {
get {
if (_reader == null) {
return 0;
}
if (_lineOffset > 0) {
return _reader.LineNumber + _lineOffset - 1;
}
return _reader.LineNumber;
}
}
public int LineNumber { get { return ((IConfigErrorInfo)this).LineNumber; } }
public string Filename {
get { return ConfigurationException.SafeFilename(_filename); }
}
string IConfigErrorInfo.Filename {
get { return _filename; }
}
public override void Load(string filename) {
_filename = filename;
try {
_reader = new XmlTextReader(filename);
_reader.XmlResolver = null;
base.Load(_reader);
}
finally {
if (_reader != null) {
_reader.Close();
_reader = null;
}
}
}
#if UNUSED_CODE
internal XmlNode ReadConfigNode(string filename, XmlTextReader sourceReader) {
_filename = filename;
_reader = sourceReader; // pull line numbers from original reader
try {
return base.ReadNode(sourceReader);
}
finally {
_reader = null;
}
}
#endif
public void LoadSingleElement(string filename, XmlTextReader sourceReader) {
_filename = filename;
_lineOffset = sourceReader.LineNumber;
string outerXml = sourceReader.ReadOuterXml();
try {
_reader = new XmlTextReader(new StringReader(outerXml), sourceReader.NameTable);
base.Load(_reader);
}
finally {
if (_reader != null) {
_reader.Close();
_reader = null;
}
}
}
public override XmlAttribute CreateAttribute( string prefix, string localName, string namespaceUri ) {
return new ConfigXmlAttribute( _filename, LineNumber, prefix, localName, namespaceUri, this );
}
public override XmlElement CreateElement( string prefix, string localName, string namespaceUri) {
return new ConfigXmlElement( _filename, LineNumber, prefix, localName, namespaceUri, this );
}
public override XmlText CreateTextNode(String text) {
return new ConfigXmlText( _filename, LineNumber, text, this );
}
public override XmlCDataSection CreateCDataSection(String data) {
return new ConfigXmlCDataSection( _filename, LineNumber, data, this );
}
public override XmlComment CreateComment(String data) {
return new ConfigXmlComment( _filename, LineNumber, data, this );
}
public override XmlSignificantWhitespace CreateSignificantWhitespace(String data) {
return new ConfigXmlSignificantWhitespace( _filename, LineNumber, data, this );
}
public override XmlWhitespace CreateWhitespace(String data) {
return new ConfigXmlWhitespace( _filename, LineNumber, data, this );
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SetterTriggerConditionValueConverter.cs
- ActivityCollectionMarkupSerializer.cs
- Model3D.cs
- ProfessionalColors.cs
- WebBrowserUriTypeConverter.cs
- AssemblyUtil.cs
- ImmutableObjectAttribute.cs
- DefaultSection.cs
- DesignerTransaction.cs
- SqlCacheDependency.cs
- ValueTypeFieldReference.cs
- PackageDigitalSignatureManager.cs
- InvalidOperationException.cs
- LifetimeServices.cs
- XmlCollation.cs
- EventProviderBase.cs
- ContextDataSourceContextData.cs
- DataGridViewColumnDesigner.cs
- CustomError.cs
- SystemGatewayIPAddressInformation.cs
- IdentifierService.cs
- Condition.cs
- MemoryPressure.cs
- RequestResizeEvent.cs
- UnmanagedMemoryStreamWrapper.cs
- WebPartMenuStyle.cs
- storepermission.cs
- SplitterEvent.cs
- MemberMaps.cs
- DataGridItem.cs
- Matrix3D.cs
- TextBox.cs
- GenerateHelper.cs
- WebPartVerbCollection.cs
- MaxMessageSizeStream.cs
- TextSelection.cs
- ReachDocumentPageSerializer.cs
- SchemaElementLookUpTable.cs
- LinkConverter.cs
- ModelUIElement3D.cs
- ContentPlaceHolder.cs
- CodeObject.cs
- StructuredProperty.cs
- CryptographicAttribute.cs
- WindowsAuthenticationModule.cs
- AsmxEndpointPickerExtension.cs
- EditorBrowsableAttribute.cs
- TerminatorSinks.cs
- NameTable.cs
- LinkedResourceCollection.cs
- SecurityDocument.cs
- ClientType.cs
- SqlMetaData.cs
- Semaphore.cs
- ClientTargetSection.cs
- SafeReadContext.cs
- OleDbReferenceCollection.cs
- TouchesCapturedWithinProperty.cs
- EntityDataSourceUtil.cs
- XmlEntityReference.cs
- _SSPIWrapper.cs
- StorageTypeMapping.cs
- CodeDOMUtility.cs
- DbConnectionClosed.cs
- CommandID.cs
- DataReaderContainer.cs
- MailWebEventProvider.cs
- Assembly.cs
- CorrelationTokenInvalidatedHandler.cs
- LinqDataSourceDisposeEventArgs.cs
- ScrollItemPattern.cs
- DecimalStorage.cs
- WhitespaceReader.cs
- TrackingLocationCollection.cs
- DataGridViewCellPaintingEventArgs.cs
- Schema.cs
- HttpRuntime.cs
- SystemEvents.cs
- FormsAuthenticationConfiguration.cs
- CornerRadius.cs
- RequestCacheValidator.cs
- CommandManager.cs
- Int16.cs
- HtmlElement.cs
- Task.cs
- UserControlBuildProvider.cs
- Geometry3D.cs
- DockingAttribute.cs
- TheQuery.cs
- ServiceNotStartedException.cs
- BitmapFrame.cs
- CompilerCollection.cs
- CounterSample.cs
- StringFreezingAttribute.cs
- ExcludePathInfo.cs
- RegexInterpreter.cs
- MailAddressCollection.cs
- XPathNodeHelper.cs
- DataGridItemCollection.cs
- MimeMapping.cs