0
我的模型有一系列的setter和getters。一些制定者调用依赖于其他属性的方法。这工作正常,因为当在代码中构造对象时,我控制设置属性的顺序。然而,在序列化/反序列化过程中,我遇到了一个问题,即在实际设置了property1之前,还会调用一个依赖于另一个属性(称为property1)的方法的setter。System.Web.Script.Serialization.JavaScriptSerializer属性反序列化的顺序
当使用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
}
}
感谢
它是一个艰难的避免在这种情况下..唯一的方法来避免这一点,我可以看到是不是使用序列化或创建一个自定义deseerializer(我想避免)。在这种情况下,当一个属性发生变化时,我想要做点什么。如果我使用getter或setter,做这件事,竞赛条件仍然存在。 – mike01010 2013-02-15 15:48:47