0

私のモデルには一連のセッターとゲッターがあります。一部のセッターは、他のプロパティに依存するメソッドを呼び出します。コードでオブジェクトを構築するとき、プロパティが設定される順序を制御するため、これは正常に機能します。ただし、シリアル化/逆シリアル化中に、property1が実際に設定される前に、別のプロパティ(たとえば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 に答える