【发布时间】:2011-12-06 09:16:00
【问题描述】:
我尝试过这样的事情:
[NonSerialized]
private string _DecodeText;
public string DecodeText { get { return _DecodeText; } set { _DecodeText = value; } }
但它不起作用。 “DecodeText”仍在序列化文件中。如何防止属性序列化?
【问题讨论】:
-
您使用的是什么序列化程序? NonSerialized 属性仅适用于 BinaryFormatter 或 SoapFormatter
-
我正在使用 XmlSerializer 和 BinaryFormatter。我尝试添加 [XmlIgnore]。同样的问题。然后我尝试将 [XmlIgnore] 添加到属性中。作品。奇异的世界……
-
是的,XmlSerialiser 适用于公共属性和公共字段(如果我没记错的话)。而二进制序列化器适用于私有和公共字段,因此它不允许您在属性上使用该属性,而 XmlSerialiser 不允许您在私有字段上使用 XmlIgnore 属性。
-
你解决了 XmlSerialization 的问题,但是 BinaryFormatter 呢?我有同样的问题,我使用 BinaryFormatter 但 NonSerialized 不起作用。