我有一个需要在C#中序列化的对象,但是这个对象具有以下属性:
[XmlElement("NodeConfiguration")]
public NodeConfigurationSerialize NodeConfiguration { get; set; }
在序列化过程中必须忽略此属性,并且必须在反序列化期间考虑此属性,换句话说,我需要配置此属性,使其仅被序列化过程忽略。
有人知道这是否可行?如果是这样,我该怎么做?
注意:我使用的是Visual Studio 2010和.NET Framework 4.0。
答案 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',当你这样做时,你可以将它设置为你想要的任何东西。现在,您可以自动使用序列化/反序列化,而无需手动编辑文件。