Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- ManagedWndProcTracker.cs
- ServerValidateEventArgs.cs
- RuleConditionDialog.Designer.cs
- DesignerEventService.cs
- ElementHostAutomationPeer.cs
- DesignerProperties.cs
- BamlTreeMap.cs
- IpcChannel.cs
- BaseValidator.cs
- VisualStyleInformation.cs
- PropertyConverter.cs
- Types.cs
- XmlToDatasetMap.cs
- WsatTransactionHeader.cs
- CustomErrorsSectionWrapper.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- CustomLineCap.cs
- SystemUnicastIPAddressInformation.cs
- SignatureToken.cs
- DbException.cs
- ObjectListGeneralPage.cs
- ControlBuilder.cs
- FlagsAttribute.cs
- Property.cs
- ActivityCodeDomReferenceService.cs
- FlagsAttribute.cs
- EntryWrittenEventArgs.cs
- SoapIncludeAttribute.cs
- VerificationException.cs
- ModelProperty.cs
- TextEditorThreadLocalStore.cs
- FileDetails.cs
- CqlParserHelpers.cs
- complextypematerializer.cs
- SolidColorBrush.cs
- CngKeyBlobFormat.cs
- XPathScanner.cs
- SecurityElement.cs
- ProxyAttribute.cs
- KeyedCollection.cs
- ObjectParameter.cs
- EntityObject.cs
- activationcontext.cs
- InternalControlCollection.cs
- OracleString.cs
- ListBoxItemAutomationPeer.cs
- FormViewUpdateEventArgs.cs
- XamlFxTrace.cs
- DeclaredTypeValidatorAttribute.cs
- WorkflowTraceTransfer.cs
- TableLayoutPanelCellPosition.cs
- SparseMemoryStream.cs
- CodeValidator.cs
- StoreItemCollection.cs
- mediaclock.cs
- ProcessHostConfigUtils.cs
- CryptoConfig.cs
- XmlStreamStore.cs
- XmlNode.cs
- EncodingNLS.cs
- DataGridCellClipboardEventArgs.cs
- UpdatePanelTrigger.cs
- FormViewUpdatedEventArgs.cs
- FolderBrowserDialog.cs
- TCPListener.cs
- Pipe.cs
- StreamSecurityUpgradeAcceptor.cs
- MouseEventArgs.cs
- BamlBinaryWriter.cs
- ResXResourceReader.cs
- MessageDecoder.cs
- PriorityItem.cs
- SQLBinaryStorage.cs
- OptimalTextSource.cs
- ColumnReorderedEventArgs.cs
- HttpResponseHeader.cs
- XsltContext.cs
- Single.cs
- PenContext.cs
- FloatUtil.cs
- ListCollectionView.cs
- MemberMemberBinding.cs
- DataGridViewSelectedCellCollection.cs
- FixedSOMPageElement.cs
- LineSegment.cs
- CasesDictionary.cs
- FlowDocumentReaderAutomationPeer.cs
- HttpHandlersSection.cs
- InstanceKeyView.cs
- HScrollBar.cs
- DataContractSerializerOperationBehavior.cs
- MembershipValidatePasswordEventArgs.cs
- SqlAliaser.cs
- ThreadInterruptedException.cs
- IndexedString.cs
- StreamWithDictionary.cs
- WebPartDisplayModeEventArgs.cs
- XmlSchemaAnnotation.cs
- HMACMD5.cs
- safelinkcollection.cs