Выборочная сериализация с NetDataContractSerializer - PullRequest
0 голосов
/ 02 апреля 2010

Сериализация этого класса работает нормально. Однако иногда я хотел бы исключить поле. Возможно ли это?

[DataContract]
class Foo
{
    [DataMember]
    Foo _Foo;
}

Нельзя временно установить нулевое значение для поля.

1 Ответ

0 голосов
/ 22 сентября 2010

В случае, если кто-то столкнется с той же проблемой, я покажу решение, которое я выбрал.

Идея состоит в том, чтобы фасад оригинального поля был таким:

[DataContract]
class Foo
{
    Foo _FooOriginal;

    [DataMember]
    Foo _Foo {
        get {
            return whatever ? _FooOriginal : null;
        }
        set {
            _FooOriginal = value;
        }
    }
}
...