System.Xml.XmlBaseWriter.StartElementAsync C# (CSharp) Method

StartElementAsync() private method

private StartElementAsync ( string prefix, string localName, string ns, XmlDictionaryString xNs ) : Task
prefix string
localName string
ns string
xNs XmlDictionaryString
return Task
        private async Task<string> StartElementAsync(string prefix, string localName, string ns, XmlDictionaryString xNs)
        {
            await FlushBase64Async().ConfigureAwait(false);
            await AutoCompleteAsync(WriteState.Element).ConfigureAwait(false);
            Element element = EnterScope();
            if (ns == null)
            {
                if (prefix == null)
                    prefix = string.Empty;

                ns = _nsMgr.LookupNamespace(prefix);

                if (ns == null)
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.Format(SR.XmlUndefinedPrefix, prefix), nameof(prefix)));
            }
            else if (prefix == null)
            {
                prefix = _nsMgr.LookupPrefix(ns);

                if (prefix == null)
                {
                    prefix = string.Empty;
                    _nsMgr.AddNamespace(string.Empty, ns, xNs);
                }
            }
            else
            {
                _nsMgr.AddNamespaceIfNotDeclared(prefix, ns, xNs);
            }
            element.Prefix = prefix;
            element.LocalName = localName;

            return prefix;
        }