System.Xml.XmlLoader.LoadEntityReferenceNode C# (CSharp) Méthode

LoadEntityReferenceNode() private méthode

private LoadEntityReferenceNode ( bool direct ) : XmlEntityReference
direct bool
Résultat XmlEntityReference
        private XmlEntityReference LoadEntityReferenceNode(bool direct)
        {
            Debug.Assert(_reader.NodeType == XmlNodeType.EntityReference);
            XmlEntityReference eref = direct ? new XmlEntityReference(_reader.Name, _doc) : _doc.CreateEntityReference(_reader.Name);
            if (_reader.CanResolveEntity)
            {
                _reader.ResolveEntity();
                while (_reader.Read() && _reader.NodeType != XmlNodeType.EndEntity)
                {
                    XmlNode node = direct ? LoadNodeDirect() : LoadNode(false);
                    if (node != null)
                    {
                        eref.AppendChildForLoad(node, _doc);
                    }
                }
                // Code internally relies on the fact that an EntRef nodes has at least one child (even an empty text node). Ensure that this holds true,
                // if the reader does not present any children for the ent-ref
                if (eref.LastChild == null)
                    eref.AppendChildForLoad(_doc.CreateTextNode(string.Empty), _doc);
            }
            return eref;
        }