System.Xml.XmlTextReaderImpl.CheckEncoding C# (CSharp) Method

CheckEncoding() private method

private CheckEncoding ( string newEncodingName ) : Encoding
newEncodingName string
return System.Text.Encoding
        private Encoding CheckEncoding(string newEncodingName)
        {
            // encoding can be switched on stream input only
            if (_ps.stream == null)
            {
                return _ps.encoding;
            }

            if (String.Equals(newEncodingName, "ucs-2", StringComparison.OrdinalIgnoreCase) ||
                String.Equals(newEncodingName, "utf-16", StringComparison.OrdinalIgnoreCase) ||
                String.Equals(newEncodingName, "iso-10646-ucs-2", StringComparison.OrdinalIgnoreCase) ||
                String.Equals(newEncodingName, "ucs-4", StringComparison.OrdinalIgnoreCase))
            {
                if (_ps.encoding.WebName != "utf-16BE" &&
                     _ps.encoding.WebName != "utf-16" &&
                     !String.Equals(newEncodingName, "ucs-4", StringComparison.OrdinalIgnoreCase))
                {
                    if (_afterResetState)
                    {
                        Throw(SR.Xml_EncodingSwitchAfterResetState, newEncodingName);
                    }
                    else
                    {
                        ThrowWithoutLineInfo(SR.Xml_MissingByteOrderMark);
                    }
                }
                return _ps.encoding;
            }

            Encoding newEncoding = null;
            if (String.Equals(newEncodingName, "utf-8", StringComparison.OrdinalIgnoreCase))
            {
                newEncoding = UTF8BomThrowing;
            }
            else
            {
                try
                {
                    newEncoding = Encoding.GetEncoding(newEncodingName);
                }
                catch (NotSupportedException innerEx)
                {
                    Throw(SR.Xml_UnknownEncoding, newEncodingName, innerEx);
                }
                catch (ArgumentException innerEx)
                {
                    Throw(SR.Xml_UnknownEncoding, newEncodingName, innerEx);
                }
                Debug.Assert(newEncoding.EncodingName != "UTF-8");
            }

            // check for invalid encoding switches after ResetState
            if (_afterResetState && _ps.encoding.WebName != newEncoding.WebName)
            {
                Throw(SR.Xml_EncodingSwitchAfterResetState, newEncodingName);
            }

            return newEncoding;
        }
XmlTextReaderImpl