如何忽略C#中的参数序列化

时间:2012-01-31 14:14:20

标签: c# xml .net-4.0 xml-serialization

我有一个需要在C#中序列化的对象,但是这个对象具有以下属性:

[XmlElement("NodeConfiguration")]
public NodeConfigurationSerialize NodeConfiguration { get; set; }

在序列化过程中必须忽略此属性,并且必须在反序列化期间考虑此属性,换句话说,我需要配置此属性,使其仅被序列化过程忽略。

有人知道这是否可行?如果是这样,我该怎么做?

注意:我使用的是Visual Studio 2010和.NET Framework 4.0。

2 个答案:

答案 0 :(得分:0)

您可以实现System.Xml.Serialization.IXmlSerializable界面:

public NodeConfigurationSerialize : IXmlSerializable
{
    public void ReadXml(System.Xml.XmlReader reader) 
    {
        this.value = (String)reader.ReadElementContentAs(typeof(String), null);
    }

    public void WriteXml(System.Xml.XmlWriter writer) 
    {
        // do nothing
    }
}

答案 1 :(得分:0)

我认为您的设计需要进行小的改动。你需要一些方法来说'这不是设置':

[XmlElement(IsNullable = true)]
public NodeConfigurationSerialize ? NodeConfiguration { get; set; }

当你不想设置它时,将它设置为'null',当你这样做时,你可以将它设置为你想要的任何东西。现在,您可以自动使用序列化/反序列化,而无需手动编辑文件。