Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- RequestDescription.cs
- RankException.cs
- SettingsBase.cs
- PermissionSetTriple.cs
- Ref.cs
- XdrBuilder.cs
- MimeTypeMapper.cs
- DataViewSettingCollection.cs
- SchemaTableColumn.cs
- DesignerSerializationVisibilityAttribute.cs
- MDIWindowDialog.cs
- EntityStoreSchemaGenerator.cs
- RefType.cs
- WebPartMovingEventArgs.cs
- TableHeaderCell.cs
- CredentialCache.cs
- Context.cs
- SchemaEntity.cs
- RelationshipFixer.cs
- TextTreeTextBlock.cs
- unsafenativemethodsother.cs
- ClientProxyGenerator.cs
- AccessibleObject.cs
- LZCodec.cs
- SoapExtensionImporter.cs
- CreateUserErrorEventArgs.cs
- WindowsImpersonationContext.cs
- ServiceModelTimeSpanValidator.cs
- ObjectTag.cs
- TypeReference.cs
- OrderPreservingSpoolingTask.cs
- SkipStoryboardToFill.cs
- dataprotectionpermission.cs
- CharacterMetricsDictionary.cs
- UnauthorizedWebPart.cs
- PageBorderless.cs
- XmlReturnWriter.cs
- PropertySourceInfo.cs
- FacetValues.cs
- PerfCounterSection.cs
- DeclarativeCatalogPartDesigner.cs
- ContractHandle.cs
- ClientRolePrincipal.cs
- __Filters.cs
- HyperLink.cs
- MSHTMLHost.cs
- RegexCharClass.cs
- DetailsViewRow.cs
- Icon.cs
- XmlDataImplementation.cs
- ElementUtil.cs
- XmlSchemaCollection.cs
- Italic.cs
- CollectionTypeElement.cs
- BatchStream.cs
- Repeater.cs
- SmtpNetworkElement.cs
- SoundPlayer.cs
- PermissionRequestEvidence.cs
- ObjectListItem.cs
- StringFormat.cs
- InvalidWMPVersionException.cs
- TextServicesDisplayAttributePropertyRanges.cs
- StrokeNodeOperations.cs
- MetadataItem.cs
- DataBindingList.cs
- HandlerFactoryWrapper.cs
- Serializer.cs
- WebServiceMethodData.cs
- PolyLineSegmentFigureLogic.cs
- QuinticEase.cs
- DataGrid.cs
- QuinticEase.cs
- CompositeClientFormatter.cs
- RootAction.cs
- XmlWhitespace.cs
- XmlAttributeProperties.cs
- XmlSchemaSimpleContentRestriction.cs
- SqlDependency.cs
- DataContractSerializerSection.cs
- LicenseException.cs
- Point.cs
- CodeStatement.cs
- Hyperlink.cs
- grammarelement.cs
- EntityDataSourceStatementEditor.cs
- TemplateInstanceAttribute.cs
- X500Name.cs
- EventHandlerList.cs
- WindowsListBox.cs
- HitTestWithPointDrawingContextWalker.cs
- FontSourceCollection.cs
- ToolStripTextBox.cs
- SelectionItemProviderWrapper.cs
- WebPartDeleteVerb.cs
- ImageCodecInfo.cs
- FileSecurity.cs
- GridViewDeletedEventArgs.cs
- ValuePattern.cs
- ScriptServiceAttribute.cs