2012-03-07 71 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);