C# · 12月 29, 2021

c# – 防止属性序列化

我试过这样的东西: [NonSerialized] private string _DecodeText; public string DecodeText { get { return _DecodeText; } set { _DecodeText = value; } }

但它不行. “DecodeText”仍然在序列化文件中.我如何防止属性序列化?

解决方法 我怀疑你在使用XmlSerializer?如果是这样,请使用[XmlIgnore]属性.

这应该应用于属性而不是后备字段,因为XmlSerializer将序列化公共字段和属性(而BinaryFormatter使用refelction来获取私有字段,因此使用BinaryFormatter时使用NonSerialized标记私有字段).