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
- WebRequestModuleElement.cs
- DataFormats.cs
- GeometryHitTestResult.cs
- ConnectionPoint.cs
- Utils.cs
- WindowsFormsHelpers.cs
- ErrorStyle.cs
- MouseCaptureWithinProperty.cs
- DictionaryEntry.cs
- AsyncOperationContext.cs
- SimpleRecyclingCache.cs
- BasicExpressionVisitor.cs
- UiaCoreTypesApi.cs
- PrimitiveSchema.cs
- ErrorEventArgs.cs
- EndpointAddressAugust2004.cs
- TextParagraphView.cs
- serverconfig.cs
- TraceSource.cs
- Pointer.cs
- ManagementExtension.cs
- SQLDecimal.cs
- RuntimeCompatibilityAttribute.cs
- SingleResultAttribute.cs
- CacheSection.cs
- SolidColorBrush.cs
- EntityConnectionStringBuilder.cs
- HealthMonitoringSectionHelper.cs
- RestHandlerFactory.cs
- BuildProvidersCompiler.cs
- DrawingContextDrawingContextWalker.cs
- QuaternionAnimation.cs
- HttpApplicationFactory.cs
- Activator.cs
- DbProviderFactories.cs
- TypeSystemProvider.cs
- EndpointPerformanceCounters.cs
- DigestComparer.cs
- WebPartConnectionsCancelVerb.cs
- DropDownButton.cs
- SiteMap.cs
- IsolatedStorage.cs
- SourceFilter.cs
- RequestNavigateEventArgs.cs
- KerberosRequestorSecurityToken.cs
- IndentTextWriter.cs
- PathSegment.cs
- HttpCookieCollection.cs
- CornerRadius.cs
- SmiRecordBuffer.cs
- ObjectSelectorEditor.cs
- KerberosSecurityTokenParameters.cs
- HiddenFieldPageStatePersister.cs
- SmiEventSink_Default.cs
- TransformPatternIdentifiers.cs
- TextBounds.cs
- XmlStringTable.cs
- AdornerDecorator.cs
- Tracer.cs
- CacheOutputQuery.cs
- BasicDesignerLoader.cs
- TypeValidationEventArgs.cs
- PropertyItem.cs
- DesigntimeLicenseContext.cs
- BrowserDefinition.cs
- DataTransferEventArgs.cs
- LockCookie.cs
- DataGridViewImageCell.cs
- Run.cs
- Tuple.cs
- ExtendedTransformFactory.cs
- TextBoxRenderer.cs
- PermissionToken.cs
- DbUpdateCommandTree.cs
- DataColumnPropertyDescriptor.cs
- AttributeProviderAttribute.cs
- DataGridItem.cs
- ExpressionBinding.cs
- OrderByQueryOptionExpression.cs
- DataDocumentXPathNavigator.cs
- ParameterReplacerVisitor.cs
- PointAnimationBase.cs
- ListViewAutomationPeer.cs
- ParameterModifier.cs
- ServiceOperationInfoTypeConverter.cs
- IIS7WorkerRequest.cs
- CodeDomConfigurationHandler.cs
- PlaceHolder.cs
- TextSyndicationContentKindHelper.cs
- oledbmetadatacollectionnames.cs
- MultiView.cs
- SplashScreen.cs
- SamlAuthorizationDecisionStatement.cs
- HostTimeoutsElement.cs
- TypeLoader.cs
- DataServices.cs
- RenderOptions.cs
- ControlBindingsCollection.cs
- HeaderedItemsControl.cs
- Shared.cs