2012-03-07 82 views
0

我想在反序列化過程中跳過(不調用)函數。例如,如果我有財產。反序列化時跳過函數

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

我想在反序列化期間不要調用「CallSomeFunction(x)」。因爲反序列化設置爲Value1,所以它調用了真正不應該調用的CallSomeFunction,因爲在之前手動創建對象時,CallSomeFunction已經完成了它的工作。有沒有辦法做到這一點,以便它跳過/不調用set屬性中的函數,只設置值?

回答

1

不,在反序列化驅動調用setter方法來初始化屬性,只要把你的功能在另一個地方之前把它保存:

MyClass 
{ 
    public int Value1 {get;set;} 

    public void CallSomeFunction(int value); 
} 

var item = new MyClass(); 
item.Value1 = CallSomeFunction(someValue); 
Save(item);