System.Xml.Xsl.Xslt.QilGenerator.GetNsVar C# (CSharp) Méthode

GetNsVar() private méthode

private GetNsVar ( QilList nsList ) : QilIterator
nsList QilList
Résultat QilIterator
        private QilIterator GetNsVar(QilList nsList)
        {
            Debug.Assert(IsDebug, "This is debug only logic");
            // All global vars at this point are nsList like one we are looking now.
            foreach (QilIterator var in _nsVars)
            {
                Debug.Assert(var.XmlType.IsSubtypeOf(T.NamespaceS));
                Debug.Assert(var.Binding is QilList);
                QilList varList = (QilList)var.Binding;
                if (varList.Count != nsList.Count)
                {
                    continue;
                }
                bool found = true;
                for (int i = 0; i < nsList.Count; i++)
                {
                    Debug.Assert(nsList[i].NodeType == QilNodeType.NamespaceDecl);
                    Debug.Assert(varList[i].NodeType == QilNodeType.NamespaceDecl);
                    if (
                        ((QilLiteral)((QilBinary)nsList[i]).Right).Value != ((QilLiteral)((QilBinary)varList[i]).Right).Value ||
                        ((QilLiteral)((QilBinary)nsList[i]).Left).Value != ((QilLiteral)((QilBinary)varList[i]).Left).Value
                    )
                    {
                        found = false;
                        break;
                    }
                }
                if (found)
                {
                    return var;  // Found!
                }
            }
            QilIterator newVar = _f.Let(nsList);
            newVar.DebugName = _f.QName("ns" + _nsVars.Count, XmlReservedNs.NsXslDebug).ToString();
            _gloVars.Add(newVar);
            _nsVars.Add(newVar);
            return newVar;
        }
QilGenerator