System.Xml.DomNameTable.AddName C# (CSharp) Méthode

AddName() public méthode

public AddName ( string prefix, string localName, string ns, IXmlSchemaInfo schemaInfo ) : XmlName
prefix string
localName string
ns string
schemaInfo IXmlSchemaInfo
Résultat XmlName
        public XmlName AddName(string prefix, string localName, string ns, IXmlSchemaInfo schemaInfo) { 
            if (prefix == null) {
                prefix = string.Empty;
            }
            if (ns == null) {
                ns = string.Empty;
            }

            int hashCode = XmlName.GetHashCode(localName);

            for (XmlName e = entries[hashCode & mask]; e != null; e = e.next) {
                if (e.HashCode == hashCode 
                    && ((object)e.LocalName == (object)localName 
                        || e.LocalName.Equals(localName)) 
                    && ((object)e.Prefix == (object)prefix 
                        || e.Prefix.Equals(prefix)) 
                    && ((object)e.NamespaceURI == (object)ns 
                        || e.NamespaceURI.Equals(ns))
                    && e.Equals(schemaInfo)) {
                    return e;
                }
            }

            prefix = nameTable.Add(prefix);
            localName = nameTable.Add(localName);
            ns = nameTable.Add(ns);
            int index = hashCode & mask;
            XmlName name = XmlName.Create(prefix, localName, ns, hashCode, ownerDocument, entries[index], schemaInfo);
            entries[index] = name;

            if (count++ == mask) {
                Grow();
            }

            return name;
        }

Usage Example

        internal XmlName AddXmlName(string prefix, string localName, string namespaceURI)
        {
            XmlName n = domNameTable.AddName(prefix, localName, namespaceURI);

            Debug.Assert((prefix == null) ? (n.Prefix.Length == 0) : (prefix == n.Prefix));
            Debug.Assert(n.LocalName == localName);
            Debug.Assert((namespaceURI == null) ? (n.NamespaceURI.Length == 0) : (n.NamespaceURI == namespaceURI));
            return(n);
        }