protected virtual string ReadString()
{
if (Reader.ReadState != ReadState.Interactive)
{
return string.Empty;
}
Reader.MoveToElement();
if (Reader.NodeType == XmlNodeType.Element)
{
if (Reader.IsEmptyElement)
{
return string.Empty;
}
else if (!Reader.Read())
{
throw new InvalidOperationException(SR.Xml_InvalidOperation);
}
if (Reader.NodeType == XmlNodeType.EndElement)
{
return string.Empty;
}
}
string result = string.Empty;
while (IsTextualNode(Reader.NodeType))
{
result += Reader.Value;
if (!Reader.Read())
{
break;
}
}
return result;
}