0

我的模型有一系列的 setter 和 getter。一些 setter 调用依赖于其他属性的方法。这很好用,因为在代码中构造对象时,我控制设置属性的顺序。但是,在序列化/反序列化期间,我遇到了一个问题,即在实际设置 property1 之前运行的 setter 还调用了依赖于另一个属性(例如 property1)的方法。

有没有办法控制使用反序列化时调用属性设置器的顺序System.Web.Script.Serialization.JavaScriptSerializer

 public class MyClass
{
    public String[] Property1 { get; set; }

    private String[] _property2;
    public string[] Property2
    {
        get { return _property2; }
        set { _property2 = value; UpdateSomething(); UpdateSomething(); RaisePropertyChanged("Property2"); }
    }

    public void UpdateSomething()
    {
        Debug.Assert(Property1.Length == Property2.Length); <!--When deserializing, need Property1 set before property2 to avoid issues
    }
}

谢谢

4

1 回答 1

0

我采用的解决方案是创建一个按比例缩小的可持久模型,其中仅包含我想要保留或恢复的字段。真正的模型有一个重载的构造函数,它采用可持久化的模型并可以从中恢复自己..从而使我可以更好地控制属性的初始化/设置方式。

于 2013-02-19T16:09:01.053 回答