我希望在反序列化期间跳过(不调用)函数。例如,如果我有财产。
private int _value1
public int Value1
{
get { return _value1; }
set {
_value1 = value;
CallSomeFunction(_value1)
}
}
我希望在反序列化期间不要调用“CallSomeFunction(x)”。因为反序列化设置了Value1,所以它调用的CallSomeFunction实际上不应该被调用,因为CallSomeFunction在之前手动创建对象时已经完成了它的工作。有没有办法这样做,以便它跳过/不调用set属性中的函数,只是设置值?
答案 0 :(得分:1)
不,在反序列化驱动程序调用setter初始化属性时,只需将您的函数放在另一个地方并在保存之前调用它:
MyClass
{
public int Value1 {get;set;}
public void CallSomeFunction(int value);
}
var item = new MyClass();
item.Value1 = CallSomeFunction(someValue);
Save(item);