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
- Model3DGroup.cs
- ReadWriteObjectLock.cs
- IxmlLineInfo.cs
- ObjRef.cs
- RuntimeConfig.cs
- WebPartEditorApplyVerb.cs
- DataRelationPropertyDescriptor.cs
- FixedLineResult.cs
- PermissionSetTriple.cs
- selecteditemcollection.cs
- ValidationEventArgs.cs
- PersonalizationDictionary.cs
- _ListenerAsyncResult.cs
- Utils.cs
- MachineSettingsSection.cs
- IPEndPointCollection.cs
- Renderer.cs
- BrowserTree.cs
- BlurBitmapEffect.cs
- DynamicRouteExpression.cs
- FacetValueContainer.cs
- Triangle.cs
- HttpClientCertificate.cs
- SchemaName.cs
- RecognizedAudio.cs
- MenuItemStyle.cs
- Html32TextWriter.cs
- SynchronizedDispatch.cs
- ContextStaticAttribute.cs
- TdsEnums.cs
- DocumentsTrace.cs
- ServicesUtilities.cs
- WebPartEditorOkVerb.cs
- LocationUpdates.cs
- Floater.cs
- DataGridViewComboBoxCell.cs
- ValidationResult.cs
- ReachDocumentSequenceSerializer.cs
- NamedServiceModelExtensionCollectionElement.cs
- CustomCategoryAttribute.cs
- PopOutPanel.cs
- MarkupWriter.cs
- UrlMapping.cs
- Preprocessor.cs
- DataServiceExpressionVisitor.cs
- ToolStripDropDownClosingEventArgs.cs
- WriteableBitmap.cs
- LocationReference.cs
- QilFunction.cs
- LogFlushAsyncResult.cs
- GestureRecognitionResult.cs
- ToolStripDropDownClosedEventArgs.cs
- ApplyImportsAction.cs
- ParserExtension.cs
- NavigationCommands.cs
- Camera.cs
- MessageParameterAttribute.cs
- EntityViewGenerationAttribute.cs
- HtmlTitle.cs
- ServiceBusyException.cs
- WebPartVerb.cs
- HttpCapabilitiesSectionHandler.cs
- CopyAction.cs
- Wildcard.cs
- WindowsListViewGroupSubsetLink.cs
- UnsafeNativeMethods.cs
- SqlReferenceCollection.cs
- PropertyDescriptorComparer.cs
- BaseParser.cs
- InvalidCommandTreeException.cs
- ButtonFieldBase.cs
- EventLogTraceListener.cs
- WriteableBitmap.cs
- Metafile.cs
- DrawItemEvent.cs
- AttributeCollection.cs
- IPPacketInformation.cs
- SpeakInfo.cs
- RunWorkerCompletedEventArgs.cs
- PageThemeParser.cs
- HtmlShimManager.cs
- AddInAttribute.cs
- ScriptResourceAttribute.cs
- DecoratedNameAttribute.cs
- NamespaceEmitter.cs
- MatrixUtil.cs
- ClassHandlersStore.cs
- LongValidator.cs
- ScalarConstant.cs
- WebRequestModulesSection.cs
- XmlnsDefinitionAttribute.cs
- PropertyDescriptor.cs
- PersistChildrenAttribute.cs
- Fonts.cs
- Geometry.cs
- UrlMapping.cs
- CodeGenerator.cs
- StringAnimationBase.cs
- FormViewPagerRow.cs