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
- ADRoleFactory.cs
- ServicePointManager.cs
- ValidationSummary.cs
- TrackingMemoryStreamFactory.cs
- SqlDataSourceView.cs
- TriggerAction.cs
- DayRenderEvent.cs
- ApplicationSettingsBase.cs
- PersonalizationEntry.cs
- RectangleGeometry.cs
- SqlDataSourceParameterParser.cs
- WinEventWrap.cs
- GridErrorDlg.cs
- DataObjectFieldAttribute.cs
- LineServices.cs
- Serializer.cs
- Enum.cs
- HandlerFactoryWrapper.cs
- DebuggerAttributes.cs
- DataGridViewComboBoxColumn.cs
- Tokenizer.cs
- BridgeDataRecord.cs
- BamlLocalizableResource.cs
- LineGeometry.cs
- ComponentEditorForm.cs
- PointCollectionConverter.cs
- DataTableCollection.cs
- WebServiceEnumData.cs
- ThreadAttributes.cs
- EditCommandColumn.cs
- RayHitTestParameters.cs
- PageTheme.cs
- ToolStripItemClickedEventArgs.cs
- BufferBuilder.cs
- CatalogPart.cs
- MimeObjectFactory.cs
- FieldDescriptor.cs
- SliderAutomationPeer.cs
- BufferedWebEventProvider.cs
- CursorConverter.cs
- ParameterInfo.cs
- UnhandledExceptionEventArgs.cs
- LogArchiveSnapshot.cs
- TextFindEngine.cs
- OleDbParameter.cs
- Geometry.cs
- PermissionSetEnumerator.cs
- Add.cs
- SelectorAutomationPeer.cs
- ToolStripSystemRenderer.cs
- ByteKeyFrameCollection.cs
- Gdiplus.cs
- UrlMappingsModule.cs
- ISFClipboardData.cs
- ResXBuildProvider.cs
- XLinq.cs
- CommonGetThemePartSize.cs
- WebPartManager.cs
- OraclePermission.cs
- ScrollEventArgs.cs
- MDIClient.cs
- TraceXPathNavigator.cs
- StringFreezingAttribute.cs
- CheckBoxList.cs
- JoinElimination.cs
- BaseCollection.cs
- Merger.cs
- WebControl.cs
- TemplateLookupAction.cs
- SystemInformation.cs
- ViewCellSlot.cs
- XmlNavigatorFilter.cs
- HitTestResult.cs
- ContentFilePart.cs
- DiagnosticsConfiguration.cs
- SslStream.cs
- CaseExpr.cs
- Soap11ServerProtocol.cs
- SchemaInfo.cs
- ListViewItemEventArgs.cs
- ScopeElementCollection.cs
- UnsafeNativeMethods.cs
- WasEndpointConfigContainer.cs
- EventLogPermissionAttribute.cs
- HitTestParameters3D.cs
- SemaphoreFullException.cs
- DragDrop.cs
- FusionWrap.cs
- Profiler.cs
- FlowDecision.cs
- SetIterators.cs
- X509Certificate2.cs
- RouteParser.cs
- ProjectionNode.cs
- TreeNode.cs
- DetailsViewPageEventArgs.cs
- DataServiceStreamProviderWrapper.cs
- SchemaSetCompiler.cs
- ExpandCollapsePattern.cs
- TypedTableBaseExtensions.cs