2012-03-07 3 views
0

역 직렬화 중에 함수를 건너 뛰고 (호출하지 않음) 싶습니다. 예를 들어, 재산이있는 경우.역 직렬화 중 함수 건너 뛰기

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

역 직렬화 중에 "CallSomeFunction (x)"을 호출하지 않습니다. deserialization은 Value1을 설정하기 때문에 이전에 객체를 수동으로 만들 때 CallSomeFunction이 이미 작업을 수행했기 때문에 호출해서는 안되는 CallSomeFunction을 호출합니다. 설정 속성에서 함수를 건너 뛰거나 호출하지 않고 단지 값만 설정하도록이 작업을 수행하는 방법이 있습니까?

답변

1

아니, 또 다른 장소에 기능을 넣어 저장하기 전에 호출, 속성을 초기화하는 직렬화 드라이버 호출 세터시 :

MyClass 
{ 
    public int Value1 {get;set;} 

    public void CallSomeFunction(int value); 
} 

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