Как игнорировать сериализацию параметров в C # - PullRequest
0 голосов
/ 31 января 2012

У меня есть объект, который мне нужно сериализовать в C #, однако у этого объекта есть свойство:

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

Это свойство должно игнорироваться во время сериализации и должно учитываться при десериализации, другими словамиМне нужно настроить это свойство таким образом, чтобы оно игнорировалось только процессом сериализации.

Кто-нибудь знает, возможно ли это?Если да, то как я могу это сделать?

Примечание. Я использую Visual Studio 2010 и .NET Framework 4.0.

Ответы [ 2 ]

0 голосов
/ 31 января 2012

Я думаю, что небольшие изменения в вашем дизайне необходимы.Вам нужен какой-то способ сказать «это не установлено»:

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

Когда вы не хотите, чтобы он был установлен, установите его на «ноль», когда вы это сделаете, вы можете установить его на то, что выхочу.Теперь вы можете автоматически использовать сериализацию / десериализацию без необходимости вручную редактировать файлы.

0 голосов
/ 31 января 2012

Вы можете реализовать интерфейс 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
    }
}
...