Можно ли исключить некоторые члены типа из сериализации XmlSerializer? - PullRequest
5 голосов
/ 22 октября 2009

У меня есть открытые члены, которые я не хочу сериализовать. Интересно, есть ли для них атрибут?

Ответы [ 5 ]

7 голосов
/ 22 октября 2009

Вы ищете XmlIgnore

5 голосов
/ 22 октября 2009

Используйте XmlIgnoreAttribute , чтобы делать это статически, как вам советовали другие.

Вы также можете сделать это динамически. Предположим, у вас есть сериализуемое свойство Имя . Тогда следующее:

[XmlIgnore]
public bool NameSpecified {
    get {
        // your logic here
    }
}

Если это специальное свойство getter возвращает true, Имя будет включено в выходной XML-документ, иначе оно не будет включено. NameSpecified сам помечен [XmlIgnore], потому что вы явно не хотите его включать.

4 голосов
/ 22 октября 2009

XmlIgnore добьются цели.

2 голосов
/ 22 октября 2009

Использовать атрибут XmlIgnore

0 голосов
/ 23 октября 2009

Вслед за комментарием Ажеглова относительно суффикса «Указанный» атрибут DefaultValue также учитывается при сериализации, и значение не будет сериализовано вообще, если это значение по умолчанию.

...