Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Configuration / System / Configuration / ErrorInfoXmlDocument.cs / 1305376 / ErrorInfoXmlDocument.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;
// ErrorInfoXmlDocument - 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.
internal sealed class ErrorInfoXmlDocument : 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;
}
}
internal int LineNumber { get { return ((IConfigErrorInfo)this).LineNumber; } }
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;
}
}
}
private void LoadFromConfigXmlReader(ConfigXmlReader reader) {
IConfigErrorInfo err = (IConfigErrorInfo) reader;
_filename = err.Filename;
_lineOffset = err.LineNumber + 1;
try {
_reader = reader;
base.Load(_reader);
}
finally {
if (_reader != null) {
_reader.Close();
_reader = null;
}
}
}
static internal XmlNode CreateSectionXmlNode(ConfigXmlReader reader) {
ErrorInfoXmlDocument doc = new ErrorInfoXmlDocument();
doc.LoadFromConfigXmlReader(reader);
XmlNode xmlNode = doc.DocumentElement;
return xmlNode;
}
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 );
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DocumentViewerBaseAutomationPeer.cs
- PasswordTextNavigator.cs
- PaintValueEventArgs.cs
- StyleXamlParser.cs
- InvalidOleVariantTypeException.cs
- SqlTypeConverter.cs
- ReadOnlyState.cs
- WrapperEqualityComparer.cs
- X509ChainPolicy.cs
- WindowsFormsHost.cs
- VectorConverter.cs
- UriExt.cs
- HttpErrorTraceRecord.cs
- ScrollPatternIdentifiers.cs
- ReferenceEqualityComparer.cs
- SqlCacheDependencyDatabaseCollection.cs
- RowsCopiedEventArgs.cs
- SystemIPv4InterfaceProperties.cs
- ReflectionUtil.cs
- SqlDataSourceEnumerator.cs
- InstanceDescriptor.cs
- SystemTcpConnection.cs
- ConvertersCollection.cs
- ModelItemCollection.cs
- StringBuilder.cs
- SessionParameter.cs
- BitmapEffectInputConnector.cs
- FloaterParagraph.cs
- ExpressionLexer.cs
- SlotInfo.cs
- DSASignatureFormatter.cs
- FolderLevelBuildProvider.cs
- XmlNodeReader.cs
- SafeNativeMethods.cs
- CompiledQuery.cs
- RequiredFieldValidator.cs
- MediaContextNotificationWindow.cs
- WebEvents.cs
- HttpContext.cs
- DocumentEventArgs.cs
- FileSystemInfo.cs
- ClientSettingsStore.cs
- StylusButtonEventArgs.cs
- HighlightComponent.cs
- AmbientProperties.cs
- KnownTypes.cs
- WorkflowInstanceExtensionManager.cs
- QuaternionValueSerializer.cs
- AsmxEndpointPickerExtension.cs
- CodeCompileUnit.cs
- OutputCacheProfile.cs
- SqlConnectionHelper.cs
- AssemblySettingAttributes.cs
- MiniCustomAttributeInfo.cs
- OleDbEnumerator.cs
- NativeCompoundFileAPIs.cs
- PackageRelationshipSelector.cs
- XmlSerializationWriter.cs
- XmlDocumentType.cs
- XmlException.cs
- InputScopeManager.cs
- InvalidDataException.cs
- ExpressionEditorAttribute.cs
- Focus.cs
- StylusButtonEventArgs.cs
- BamlRecordHelper.cs
- Section.cs
- SafeNativeMethods.cs
- InheritanceContextHelper.cs
- TextDpi.cs
- OleAutBinder.cs
- CallTemplateAction.cs
- TCPListener.cs
- DriveInfo.cs
- WpfSharedBamlSchemaContext.cs
- XPathEmptyIterator.cs
- WindowsPrincipal.cs
- CharAnimationUsingKeyFrames.cs
- XmlSerializerAssemblyAttribute.cs
- ParallelActivityDesigner.cs
- NumberEdit.cs
- PopupRootAutomationPeer.cs
- Pen.cs
- KeyedCollection.cs
- Brushes.cs
- ProcessProtocolHandler.cs
- DBParameter.cs
- GroupItem.cs
- CrossSiteScriptingValidation.cs
- EnterpriseServicesHelper.cs
- DataBoundControl.cs
- CachedBitmap.cs
- XmlTypeMapping.cs
- PeerDuplexChannel.cs
- LayoutTableCell.cs
- SQLDouble.cs
- Int32AnimationBase.cs
- TabItem.cs
- ManagementDateTime.cs
- ReadOnlyState.cs