C#重新加载xml文件进行反序列化,但是collection属性会自动添加导致错误结果的新对象

问题描述

大神,有个问题请教,就是我给一个class属性加了一个约束,像这样:

public class Test : ObjectParam
{
    private List<P> ps = new List<P>();
    public List<P> P {
        get
        {
            if (ps.Count == 0)
            {
                ps.Add(new P());
            }
            return ps;
        }
        set
        {
            ps = value;
        }
    }
}

public class P
{
    public string Name { get; set; }
}

每次文件重新加载和反序列化时,都会自动添加一个对象。 我设置的这个结果:

P.Count = 6;

P[0].Name = "6";

P[1].Name = "7";

P[2].Name = "8";

P[3].Name = "9";

P[4].Name = "10";

P[5].Name = "11";

但我重新加载文件并反序列化,结果是这样的: P.Count = 7;

P[0].Name = "";

P[1].Name = "6";

P[2].Name = "7";

P[3].Name = "8";

P[4].Name = "9";

P[5].Name = "10";

P[6].Name = "11";

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)