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