System.Web.Script.Serialization.JavaScriptSerializer属性反序列化的顺序

时间:2013-02-15 15:16:33

标签: c# wpf

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

有没有办法控制使用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
    }
}

由于

1 个答案:

答案 0 :(得分:0)

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