2012-03-07 2 views
0

Я хочу пропустить (не вызывать) функцию во время десериализации на объект. Например, если у меня есть свойство.Функции пропусков при десериализации

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

Я хочу не называть «CallSomeFunction (x)» во время десериализации. Поскольку десериализация устанавливает значение 1, он вызывает 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); 
Смежные вопросы