Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Configuration / System / Configuration / ErrorInfoXmlDocument.cs / 1 / 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. //------------------------------------------------------------------------------ //// 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
- ModifierKeysConverter.cs
- JoinQueryOperator.cs
- TickBar.cs
- DataGridViewColumnTypeEditor.cs
- CodeCompiler.cs
- DateTimeStorage.cs
- PresentationAppDomainManager.cs
- TraceSwitch.cs
- XPathNodeHelper.cs
- PersianCalendar.cs
- RoleGroupCollection.cs
- BinaryVersion.cs
- HorizontalAlignConverter.cs
- VariableAction.cs
- FileIOPermission.cs
- Variant.cs
- CompoundFileReference.cs
- ResourceDisplayNameAttribute.cs
- SimpleType.cs
- Int32RectConverter.cs
- WebBrowserHelper.cs
- SplitterCancelEvent.cs
- GeneralTransformGroup.cs
- ViewBase.cs
- AxisAngleRotation3D.cs
- SystemNetworkInterface.cs
- XmlChildNodes.cs
- RowUpdatingEventArgs.cs
- _ServiceNameStore.cs
- FullTextState.cs
- ICollection.cs
- OleDbInfoMessageEvent.cs
- CngAlgorithm.cs
- XmlAttributeProperties.cs
- IItemContainerGenerator.cs
- ColumnReorderedEventArgs.cs
- NamespaceList.cs
- PseudoWebRequest.cs
- WindowCollection.cs
- SessionEndedEventArgs.cs
- mediaclock.cs
- ConfigurationValidatorBase.cs
- GACIdentityPermission.cs
- QuaternionAnimationBase.cs
- FileDialogCustomPlace.cs
- PathGeometry.cs
- XmlTextReaderImplHelpers.cs
- StandardBindingElementCollection.cs
- SystemIPv6InterfaceProperties.cs
- Font.cs
- DiscoveryClientProtocol.cs
- DataErrorValidationRule.cs
- RoutedCommand.cs
- DataColumnMapping.cs
- SemanticAnalyzer.cs
- SettingsPropertyIsReadOnlyException.cs
- DbReferenceCollection.cs
- XDeferredAxisSource.cs
- DecoratedNameAttribute.cs
- DrawingImage.cs
- HtmlString.cs
- SqlClientWrapperSmiStreamChars.cs
- Transform3D.cs
- XmlDataImplementation.cs
- NativeMethods.cs
- UnknownBitmapEncoder.cs
- MenuItem.cs
- SQLGuid.cs
- MissingSatelliteAssemblyException.cs
- CounterCreationData.cs
- PropertyStore.cs
- SearchForVirtualItemEventArgs.cs
- _SslState.cs
- MsmqEncryptionAlgorithm.cs
- GacUtil.cs
- ValidateNames.cs
- externdll.cs
- SecurityTokenProvider.cs
- SettingsPropertyValueCollection.cs
- BufferedGraphicsManager.cs
- VirtualDirectoryMapping.cs
- XslTransformFileEditor.cs
- DataSpaceManager.cs
- TransportConfigurationTypeElement.cs
- XomlCompilerError.cs
- ILGenerator.cs
- NavigatorInput.cs
- UnionExpr.cs
- StylusButtonCollection.cs
- ProtectedProviderSettings.cs
- DeflateEmulationStream.cs
- DataTableTypeConverter.cs
- FontNameConverter.cs
- BulletChrome.cs
- Adorner.cs
- TypeConverter.cs
- StrokeNodeOperations2.cs
- SendKeys.cs
- SlipBehavior.cs
- DirectoryObjectSecurity.cs