System.Xml.XmlReader.ResolveEntity C# (CSharp) Method

ResolveEntity() public abstract method

public abstract ResolveEntity ( ) : void
return void
        public abstract void ResolveEntity();

Usage Example

        internal void LoadFromReader(XmlReader reader, XmlSpace space)
        {
            if (reader == null)
            {
                throw new ArgumentNullException("reader");
            }
            IXmlLineInfo lineInfo = reader as IXmlLineInfo;
            if ((lineInfo == null) || !lineInfo.HasLineInfo())
            {
                lineInfo = null;
            }
            this.hasLineInfo = lineInfo != null;
            this.nameTable = reader.NameTable;
            XPathDocumentBuilder builder = new XPathDocumentBuilder(this, lineInfo, reader.BaseURI, LoadFlags.None);
            try
            {
                bool isEmptyElement;
                string str2;
                bool flag = reader.ReadState == ReadState.Initial;
                int depth = reader.Depth;
                string str = this.nameTable.Get("http://www.w3.org/2000/xmlns/");
                if (flag && !reader.Read())
                {
                    return;
                }
            Label_007D:
                if (!flag && (reader.Depth < depth))
                {
                    return;
                }
                switch (reader.NodeType)
                {
                    case XmlNodeType.Element:
                        isEmptyElement = reader.IsEmptyElement;
                        builder.WriteStartElement(reader.Prefix, reader.LocalName, reader.NamespaceURI, reader.BaseURI);
                        goto Label_017B;

                    case XmlNodeType.Text:
                    case XmlNodeType.CDATA:
                        builder.WriteString(reader.Value, TextBlockType.Text);
                        goto Label_022B;

                    case XmlNodeType.EntityReference:
                        reader.ResolveEntity();
                        goto Label_022B;

                    case XmlNodeType.ProcessingInstruction:
                        builder.WriteProcessingInstruction(reader.LocalName, reader.Value, reader.BaseURI);
                        goto Label_022B;

                    case XmlNodeType.Comment:
                        builder.WriteComment(reader.Value);
                        goto Label_022B;

                    case XmlNodeType.DocumentType:
                    {
                        IDtdInfo dtdInfo = reader.DtdInfo;
                        if (dtdInfo != null)
                        {
                            builder.CreateIdTables(dtdInfo);
                        }
                        goto Label_022B;
                    }
                    case XmlNodeType.Whitespace:
                        goto Label_01C9;

                    case XmlNodeType.SignificantWhitespace:
                        if (reader.XmlSpace != XmlSpace.Preserve)
                        {
                            goto Label_01C9;
                        }
                        builder.WriteString(reader.Value, TextBlockType.SignificantWhitespace);
                        goto Label_022B;

                    case XmlNodeType.EndElement:
                        builder.WriteEndElement(false);
                        goto Label_022B;

                    default:
                        goto Label_022B;
                }
            Label_0113:
                str2 = reader.NamespaceURI;
                if (str2 == str)
                {
                    if (reader.Prefix.Length == 0)
                    {
                        builder.WriteNamespaceDeclaration(string.Empty, reader.Value);
                    }
                    else
                    {
                        builder.WriteNamespaceDeclaration(reader.LocalName, reader.Value);
                    }
                }
                else
                {
                    builder.WriteStartAttribute(reader.Prefix, reader.LocalName, str2);
                    builder.WriteString(reader.Value, TextBlockType.Text);
                    builder.WriteEndAttribute();
                }
            Label_017B:
                if (reader.MoveToNextAttribute())
                {
                    goto Label_0113;
                }
                if (isEmptyElement)
                {
                    builder.WriteEndElement(true);
                }
                goto Label_022B;
            Label_01C9:
                if ((space == XmlSpace.Preserve) && (!flag || (reader.Depth != 0)))
                {
                    builder.WriteString(reader.Value, TextBlockType.Whitespace);
                }
            Label_022B:
                if (reader.Read())
                {
                    goto Label_007D;
                }
            }
            finally
            {
                builder.Close();
            }
        }
All Usage Examples Of System.Xml.XmlReader::ResolveEntity