Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Sys / System / Configuration / ConfigXmlDocument.cs / 1305376 / 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 );
}
}
}
// 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;
// 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 );
}
}
}
// 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
- DBDataPermissionAttribute.cs
- SingleAnimationUsingKeyFrames.cs
- AmbientLight.cs
- EventHandlingScope.cs
- DispatcherHookEventArgs.cs
- TreeNodeStyleCollection.cs
- InvalidPipelineStoreException.cs
- FieldNameLookup.cs
- StylusEventArgs.cs
- ExcludeFromCodeCoverageAttribute.cs
- URIFormatException.cs
- XPathMultyIterator.cs
- SubstitutionResponseElement.cs
- ACL.cs
- SendSecurityHeader.cs
- BitmapEffectOutputConnector.cs
- XmlWrappingReader.cs
- CodeArrayIndexerExpression.cs
- Helpers.cs
- AutomationPatternInfo.cs
- DrawingAttributeSerializer.cs
- CredentialCache.cs
- SecondaryViewProvider.cs
- ServiceCredentialsElement.cs
- HttpCookiesSection.cs
- ExtensionSurface.cs
- ButtonStandardAdapter.cs
- TrustLevel.cs
- _PooledStream.cs
- DataGridItem.cs
- AppDomainAttributes.cs
- Decorator.cs
- SQLDecimalStorage.cs
- LoadedOrUnloadedOperation.cs
- AppSettingsSection.cs
- BitmapEncoder.cs
- LoadGrammarCompletedEventArgs.cs
- TerminatorSinks.cs
- ComplexBindingPropertiesAttribute.cs
- ColorBlend.cs
- PeerNameResolver.cs
- RunWorkerCompletedEventArgs.cs
- ToolStripRenderEventArgs.cs
- SelectorItemAutomationPeer.cs
- RequestDescription.cs
- FormViewDeleteEventArgs.cs
- CancellationToken.cs
- ServiceAuthorizationManager.cs
- Int32CollectionValueSerializer.cs
- ExtendedProperty.cs
- PrivilegedConfigurationManager.cs
- SecurityCriticalDataForSet.cs
- FrameworkTemplate.cs
- DataRelationCollection.cs
- StagingAreaInputItem.cs
- GcHandle.cs
- COM2ExtendedBrowsingHandler.cs
- ScriptManager.cs
- SpoolingTaskBase.cs
- SelectionRangeConverter.cs
- SqlDataSourceSelectingEventArgs.cs
- GridViewRowPresenterBase.cs
- WizardSideBarListControlItem.cs
- SerializationAttributes.cs
- HttpFileCollection.cs
- ComboBox.cs
- XsdBuildProvider.cs
- ToolTipService.cs
- TrustSection.cs
- XamlRtfConverter.cs
- WsatServiceCertificate.cs
- BindingsCollection.cs
- IgnoreDeviceFilterElementCollection.cs
- CodeRemoveEventStatement.cs
- AllMembershipCondition.cs
- PeerEndPoint.cs
- NodeInfo.cs
- StyleTypedPropertyAttribute.cs
- Utils.cs
- PseudoWebRequest.cs
- FtpCachePolicyElement.cs
- PrePrepareMethodAttribute.cs
- CornerRadius.cs
- DataSourceProvider.cs
- login.cs
- SerializationInfoEnumerator.cs
- AmbientLight.cs
- EventNotify.cs
- EditorZone.cs
- ListViewTableCell.cs
- NameHandler.cs
- SetIterators.cs
- ThicknessAnimation.cs
- PrincipalPermission.cs
- ClientBuildManager.cs
- DataGridViewToolTip.cs
- TypeUtils.cs
- HorizontalAlignConverter.cs
- GridItemPattern.cs
- BStrWrapper.cs