2012-03-07 3 views
0

逆シリアル化中に関数をスキップ(呼び出さない)したい。たとえば、私は財産がある場合。逆シリアル化中に関数をスキップする

private int _value1 
public int Value1 
{ 
    get { return _value1; } 
    set { 
     _value1 = value; 
     CallSomeFunction(_value1) 
    } 
} 

デシリアライズ時に「CallSomeFunction(x)」を呼び出さないでください。デシリアライゼーションはValue1を設定しているため、以前に手動でオブジェクトを作成したときにCallSomeFunctionがすでにそのジョブを実行していたため、CallSomeFunctionを呼び出す必要はありません。これを行う方法はありますか?それはスキップするか、またはsetプロパティの関数を呼び出さずに値を設定するだけですか?

答えて

1

いいえ、ちょうど別の場所であなたの関数を入れて保存する前にそれを呼び出し、プロパティを初期化するために、逆シリアル化ドライバコールセッター中:

MyClass 
{ 
    public int Value1 {get;set;} 

    public void CallSomeFunction(int value); 
} 

var item = new MyClass(); 
item.Value1 = CallSomeFunction(someValue); 
Save(item); 
関連する問題