I had the same problem recently. I think it's because that "reader.ReadString()" doesn't move the reading cursor by itself. You need to move it after you are done reading, like with
public void ReadXml(System.Xml.XmlReader reader)
{
int.TryParse(reader.ReadString(), out _value);
reader.Read();
}
Or you could use the following
public void ReadXml(System.Xml.XmlReader reader)
{
_value = reader.ReadElementContentAsInt();
}
Hopefully, that should fix your problem.