XML序列化相关问题和c#

时间:2011-05-02 12:21:18

标签: c# xml-serialization

假设我有一个customer类,我会将类序列化为xml。序列化后我们将得到xml数据,但我需要一些customer类的属性,根据几个条件按需序列化。有可能吗?

我没有概念如何去做。任何人都可以帮我这个吗?

3 个答案:

答案 0 :(得分:2)

您可以添加一个或多个ShouldSerializeXXXXXX()方法,其中XXXXXX是您要根据条件序列化的每个属性的名称。

E.g:

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 :(得分:1)

您可以使用XmlAttributeOverrides并覆盖您的媒体资源的XmlIgnore属性。

XmlIgnore msdn页面中有一个例子)

答案 2 :(得分:1)

看看this post on SO。对你有帮助。