private bool InitReadElementContentAsBinary( State binaryState ) {
if ( NodeType != XmlNodeType.Element ) {
throw reader.CreateReadElementContentAsException( "ReadElementContentAsBase64" );
}
bool isEmpty = IsEmptyElement;
// move to content or off the empty element
if ( !Read() || isEmpty ) {
return false;
}
// special-case child element and end element
switch ( NodeType ) {
case XmlNodeType.Element:
throw new XmlException( Res.Xml_InvalidNodeType, reader.NodeType.ToString(), reader as IXmlLineInfo );
case XmlNodeType.EndElement:
// pop scope & move off end element
ProcessNamespaces();
Read();
return false;
}
Debug.Assert( state == State.Interactive );
state = binaryState;
return true;
}