Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Sys / System / Configuration / ConfigXmlDocument.cs / 1 / 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 );
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlDictionaryReaderQuotasElement.cs
- XmlTypeAttribute.cs
- SqlConnectionPoolGroupProviderInfo.cs
- __Filters.cs
- ExceptionRoutedEventArgs.cs
- _KerberosClient.cs
- BitConverter.cs
- smtpconnection.cs
- PerformanceCountersElement.cs
- ObjectSet.cs
- LineInfo.cs
- WorkflowIdleBehavior.cs
- BinaryCommonClasses.cs
- XmlElementAttribute.cs
- IBuiltInEvidence.cs
- ArgumentOutOfRangeException.cs
- EntityDataSourceContextCreatingEventArgs.cs
- ShaderEffect.cs
- MessageSecurityOverHttp.cs
- CategoriesDocument.cs
- UdpConstants.cs
- SingleConverter.cs
- HttpConfigurationContext.cs
- TypedTableBase.cs
- ScrollEventArgs.cs
- ValueHandle.cs
- BindingMemberInfo.cs
- TreeNodeCollection.cs
- Point4D.cs
- ImageClickEventArgs.cs
- CreateUserErrorEventArgs.cs
- EventData.cs
- Button.cs
- WebPartDisplayMode.cs
- MsmqUri.cs
- RequestResizeEvent.cs
- MultiTrigger.cs
- FileVersion.cs
- FrameworkElement.cs
- SafeReversePInvokeHandle.cs
- BlobPersonalizationState.cs
- RectangleGeometry.cs
- MatrixUtil.cs
- Object.cs
- GenericPrincipal.cs
- XmlHierarchyData.cs
- FtpRequestCacheValidator.cs
- DesignerCapabilities.cs
- CommandHelpers.cs
- TypeElement.cs
- BaseParser.cs
- SoapSchemaImporter.cs
- ScriptManager.cs
- InstanceData.cs
- cookiecontainer.cs
- XPathNavigatorKeyComparer.cs
- TraceUtils.cs
- UInt32Converter.cs
- UserNameServiceElement.cs
- X509Certificate.cs
- TableCellCollection.cs
- EdmType.cs
- JpegBitmapEncoder.cs
- Int32Converter.cs
- HashCoreRequest.cs
- PlainXmlSerializer.cs
- DynamicILGenerator.cs
- ITextView.cs
- RegexMatch.cs
- DispatcherOperation.cs
- EmptyEnumerator.cs
- FuncCompletionCallbackWrapper.cs
- DesignerLabelAdapter.cs
- IUnknownConstantAttribute.cs
- RightNameExpirationInfoPair.cs
- ParserContext.cs
- HttpListenerRequestTraceRecord.cs
- Tokenizer.cs
- DragStartedEventArgs.cs
- MultiView.cs
- SmiGettersStream.cs
- StyleModeStack.cs
- DataMemberFieldConverter.cs
- HwndSourceKeyboardInputSite.cs
- FontWeightConverter.cs
- FloatAverageAggregationOperator.cs
- ColorConvertedBitmap.cs
- GifBitmapEncoder.cs
- TabOrder.cs
- BigInt.cs
- Events.cs
- MonthCalendarDesigner.cs
- FileInfo.cs
- ReversePositionQuery.cs
- TextSelectionHelper.cs
- ActivityInstance.cs
- Serializer.cs
- ErrorEventArgs.cs
- GrammarBuilderDictation.cs
- ObjectQueryState.cs