<PackageReference Include="System.Configuration.ConfigurationManager" Version="6.0.1" />

ConfigXmlReader

using System.Configuration.Internal; using System.IO; using System.Xml; namespace System.Configuration { internal sealed class ConfigXmlReader : XmlTextReader, IConfigErrorInfo { private readonly string _filename; private readonly bool _lineNumberIsConstant; private readonly int _lineOffset; internal string RawXml { get; } int IConfigErrorInfo.LineNumber { get { if (_lineNumberIsConstant) return _lineOffset; if (_lineOffset > 0) return base.LineNumber + (_lineOffset - 1); return base.LineNumber; } } string IConfigErrorInfo.Filename { get { return _filename; } } internal ConfigXmlReader(string rawXml, string filename, int lineOffset) : this(rawXml, filename, lineOffset, false) { } internal ConfigXmlReader(string rawXml, string filename, int lineOffset, bool lineNumberIsConstant) : base(new StringReader(rawXml)) { RawXml = rawXml; _filename = filename; _lineOffset = lineOffset; _lineNumberIsConstant = lineNumberIsConstant; } internal ConfigXmlReader Clone() { return new ConfigXmlReader(RawXml, _filename, _lineOffset, _lineNumberIsConstant); } } }