Merge pull request #439 from mono-soc-2012/garyb/iconfix
[mono.git] / mcs / class / System.XML / System.Xml / EntityResolvingXmlReader.cs
index ea37b4ed6f049b2940a1d8691715af754dcaa05c..9fb6e6fb583626fb78e4bd9ea6e827d108fb36b7 100644 (file)
@@ -26,9 +26,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_2_0
 using System.Collections.Generic;
-#endif
 using System;
 using System.Globalization;
 using System.IO;
@@ -40,10 +38,7 @@ using System.Xml;
 namespace Mono.Xml
 {
        [PermissionSet (SecurityAction.InheritanceDemand, Unrestricted = true)]
-       internal class EntityResolvingXmlReader : XmlReader,
-#if NET_2_0
-               IXmlNamespaceResolver,
-#endif
+       internal class EntityResolvingXmlReader : XmlReader, IXmlNamespaceResolver,
                IXmlLineInfo, IHasXmlParserContext
        {
                EntityResolvingXmlReader entity;
@@ -55,10 +50,14 @@ namespace Mono.Xml
                bool inside_attr;
                bool do_resolve;
 
-               public EntityResolvingXmlReader (XmlReader source, XmlParserContext context)
+               public EntityResolvingXmlReader (XmlReader source)
                {
                        this.source = source;
-                       this.context = context;
+                       IHasXmlParserContext container = source as IHasXmlParserContext;
+                       if (container != null)
+                               this.context = container.ParserContext;
+                       else
+                               this.context = new XmlParserContext (source.NameTable, new XmlNamespaceManager (source.NameTable), null, XmlSpace.None);
                }
 
                EntityResolvingXmlReader (XmlReader entityContainer,
@@ -74,21 +73,6 @@ namespace Mono.Xml
                        get { return entity != null && entity.ReadState != ReadState.Initial ? (XmlReader) entity : source; }
                }
 
-#if NET_2_0
-#else
-               public override string this [int i] {
-                       get { return GetAttribute (i); }
-               }
-
-               public override string this [string name] {
-                       get { return GetAttribute (name); }
-               }
-
-               public override string this [string localName, string namespaceName] {
-                       get { return GetAttribute (localName, namespaceName); }
-               }
-#endif
-
                public override int AttributeCount {
                        get { return Current.AttributeCount; }
                }
@@ -260,7 +244,6 @@ namespace Mono.Xml
                        return Current.GetAttribute (localName, namespaceURI);
                }
 
-#if NET_2_0
                public IDictionary<string, string> GetNamespacesInScope (XmlNamespaceScope scope)
                {
                        return ((IXmlNamespaceResolver) Current).GetNamespacesInScope (scope);
@@ -275,7 +258,6 @@ namespace Mono.Xml
                {
                        return ((IXmlNamespaceResolver) Current).LookupPrefix (ns);
                }
-#endif
 
                public override string LookupNamespace (string prefix)
                {
@@ -419,11 +401,7 @@ namespace Mono.Xml
 
                public override void ResolveEntity ()
                {
-#if NET_2_0
                        DoResolveEntity ();
-#else
-                       do_resolve = true;
-#endif
                }
 
                void DoResolveEntity ()