Вопрос, связанный с сериализацией XML и c # - PullRequest
1 голос
/ 02 мая 2011

Предположим, у меня есть один customer класс, и я сериализую класс в xml. После сериализации мы получим данные XML, но мне нужно, чтобы некоторые свойства класса customer были сериализованы по требованию на основе нескольких условий. Возможно ли это?

Понятия не имею, как это сделать. Кто-нибудь может мне помочь с этим?

Ответы [ 3 ]

2 голосов
/ 02 мая 2011

Вы можете добавить один или несколько ShouldSerializeXXXXXX() методов, где XXXXXX - это имя каждого свойства, которое вы хотите сериализовать на основе условия.

Например:

public class Customer
{
    [DefaultValue(null)]
    public string SomeInfo { get; set; }

    [DefaultValue(null)]
    public string SomeOtherInfo { get; set; }

    #region Serialization conditions

    // should SomeInfo be serialized?
    public bool ShouldSerializeSomeInfo()
    {
         return SomeInfo != null; // serialize if not null
    }

    // should SomeOtherInfo be serialized?
    public bool ShouldSerializeSomeOtherInfo()
    {
         return SomeOtherInfo != null; // serialize if not null
    }

    #endregion
}
1 голос
/ 02 мая 2011

Взгляните на этот пост на SO .Может быть полезным для вас.

1 голос
/ 02 мая 2011

Вы можете использовать XmlAttributeOverrides и переопределить атрибут XmlIgnore для вашей собственности.

(пример на странице XmlIgnore msdn)

...