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
- ToolstripProfessionalRenderer.cs
- ImageSourceValueSerializer.cs
- DataViewSettingCollection.cs
- TemplateField.cs
- HttpCachePolicyElement.cs
- Oid.cs
- UIElementPropertyUndoUnit.cs
- StorageMappingFragment.cs
- CalloutQueueItem.cs
- XsltContext.cs
- QilIterator.cs
- Int32CollectionConverter.cs
- mediapermission.cs
- DesignerHelpers.cs
- CodeAccessPermission.cs
- LambdaCompiler.Binary.cs
- TextLine.cs
- OdbcStatementHandle.cs
- TranslateTransform.cs
- QilDataSource.cs
- XmlSchemaElement.cs
- ServicePointManagerElement.cs
- TypedReference.cs
- XsltQilFactory.cs
- ContainerSelectorBehavior.cs
- StreamReader.cs
- TextTreePropertyUndoUnit.cs
- BitmapScalingModeValidation.cs
- DbReferenceCollection.cs
- Geometry.cs
- FormsAuthentication.cs
- cache.cs
- Drawing.cs
- XmlSchemaIdentityConstraint.cs
- CacheVirtualItemsEvent.cs
- EventRoute.cs
- ProfilePropertyMetadata.cs
- DrawToolTipEventArgs.cs
- BamlRecordReader.cs
- XmlHierarchicalDataSourceView.cs
- BulletChrome.cs
- DataRecordInfo.cs
- CodeMemberProperty.cs
- FamilyCollection.cs
- EventLogEntry.cs
- Axis.cs
- ScalarConstant.cs
- Quad.cs
- VersionUtil.cs
- TextWriterTraceListener.cs
- XmlToDatasetMap.cs
- DataSourceCache.cs
- PcmConverter.cs
- SqlParameterCollection.cs
- CodeGotoStatement.cs
- BuildManager.cs
- KeyEventArgs.cs
- SizeAnimationClockResource.cs
- CallbackValidatorAttribute.cs
- OperationFormatStyle.cs
- InfoCardBaseException.cs
- ParameterCollection.cs
- XmlSchemaCollection.cs
- StorageComplexTypeMapping.cs
- EntityClientCacheKey.cs
- ScrollViewer.cs
- COM2TypeInfoProcessor.cs
- StringUtil.cs
- InternalControlCollection.cs
- Base64Stream.cs
- DragDeltaEventArgs.cs
- TransformerConfigurationWizardBase.cs
- DrawingVisual.cs
- StickyNoteAnnotations.cs
- GroupByExpressionRewriter.cs
- TextSimpleMarkerProperties.cs
- KeyConverter.cs
- TabControl.cs
- WindowInteropHelper.cs
- XmlUnspecifiedAttribute.cs
- ScrollItemPatternIdentifiers.cs
- HttpCookieCollection.cs
- InstanceKeyCompleteException.cs
- PriorityBinding.cs
- TryCatchDesigner.xaml.cs
- CalendarDataBindingHandler.cs
- XmlArrayItemAttribute.cs
- VBCodeProvider.cs
- DataConnectionHelper.cs
- WebPartEditorCancelVerb.cs
- StringToken.cs
- FaultHandlingFilter.cs
- ToolStripRenderer.cs
- UIElementHelper.cs
- DataError.cs
- Queue.cs
- PartialArray.cs
- AsynchronousChannel.cs
- TextRangeEdit.cs
- PageThemeParser.cs