| File: System\IO\Packaging\XmlWrappingReader.cs | Web Access |
| Project: src\runtime\src\libraries\System.IO.Packaging\src\System.IO.Packaging.csproj (System.IO.Packaging) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Xml; using System.Xml.Schema; namespace System.IO.Packaging { internal class XmlWrappingReader : XmlReader, IXmlLineInfo, IXmlNamespaceResolver { protected XmlReader _reader; protected IXmlLineInfo? _readerAsIXmlLineInfo; protected IXmlNamespaceResolver? _readerAsResolver; internal XmlWrappingReader(XmlReader baseReader) { Debug.Assert(baseReader != null); Reader = baseReader; } public override XmlReaderSettings? Settings { get { return _reader.Settings; } } public override XmlNodeType NodeType { get { return _reader.NodeType; } } public override string Name { get { return _reader.Name; } } public override string LocalName { get { return _reader.LocalName; } } public override string NamespaceURI { get { return _reader.NamespaceURI; } } public override string Prefix { get { return _reader.Prefix; } } public override bool HasValue { get { return _reader.HasValue; } } public override string Value { get { return _reader.Value; } } public override int Depth { get { return _reader.Depth; } } public override string BaseURI { get { return _reader.BaseURI; } } public override bool IsEmptyElement { get { return _reader.IsEmptyElement; } } public override bool IsDefault { get { return _reader.IsDefault; } } public override XmlSpace XmlSpace { get { return _reader.XmlSpace; } } public override string XmlLang { get { return _reader.XmlLang; } } public override System.Type ValueType { get { return _reader.ValueType; } } public override int AttributeCount { get { return _reader.AttributeCount; } } public override string this[int i] { get { return _reader[i]; } } public override string? this[string name] { get { return _reader[name]; } } public override string? this[string name, string? namespaceURI] { get { return _reader[name, namespaceURI]; } } public override bool CanResolveEntity { get { return _reader.CanResolveEntity; } } public override bool EOF { get { return _reader.EOF; } } public override ReadState ReadState { get { return _reader.ReadState; } } public override bool HasAttributes { get { return _reader.HasAttributes; } } public override XmlNameTable NameTable { get { return _reader.NameTable; } } public override string? GetAttribute(string name) { return _reader.GetAttribute(name); } public override string? GetAttribute(string name, string? namespaceURI) { return _reader.GetAttribute(name, namespaceURI); } public override string GetAttribute(int i) { return _reader.GetAttribute(i); } public override bool MoveToAttribute(string name) { return _reader.MoveToAttribute(name); } public override bool MoveToAttribute(string name, string? ns) { return _reader.MoveToAttribute(name, ns); } public override void MoveToAttribute(int i) { _reader.MoveToAttribute(i); } public override bool MoveToFirstAttribute() { return _reader.MoveToFirstAttribute(); } public override bool MoveToNextAttribute() { return _reader.MoveToNextAttribute(); } public override bool MoveToElement() { return _reader.MoveToElement(); } public override bool Read() { return _reader.Read(); } public override void Skip() { _reader.Skip(); } public override string? LookupNamespace(string prefix) { return _reader.LookupNamespace(prefix); } string? IXmlNamespaceResolver.LookupPrefix(string namespaceName) { return _readerAsResolver?.LookupPrefix(namespaceName); } IDictionary<string, string> IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope scope) { return _readerAsResolver?.GetNamespacesInScope(scope)!; } public override void ResolveEntity() { _reader.ResolveEntity(); } public override bool ReadAttributeValue() { return _reader.ReadAttributeValue(); } // // IDisposable interface // protected override void Dispose(bool disposing) { try { if (disposing) { ((IDisposable)_reader).Dispose(); } } finally { base.Dispose(disposing); } } // // IXmlLineInfo members // public virtual bool HasLineInfo() { return (_readerAsIXmlLineInfo == null) ? false : _readerAsIXmlLineInfo.HasLineInfo(); } public virtual int LineNumber { get { return (_readerAsIXmlLineInfo == null) ? 0 : _readerAsIXmlLineInfo.LineNumber; } } public virtual int LinePosition { get { return (_readerAsIXmlLineInfo == null) ? 0 : _readerAsIXmlLineInfo.LinePosition; } } protected XmlReader Reader { get { return _reader; } [MemberNotNull(nameof(_reader))] set { _reader = value; _readerAsIXmlLineInfo = value as IXmlLineInfo; _readerAsResolver = value as IXmlNamespaceResolver; } } } }