Fix "proxy property" bug

Classes with a "proxy property" like this break upon deserialization:

public class Foo
{
    [XmlIgnore]
    public int Bar { get; set; }

    [XmlElement("Bar")] // This is the "proxy property"
    public string BarString
    {
        get { return Bar.ToString(CultureInfo.InvariantCulture); }
        set { Bar = int.Parse(value); }
    }
}