【问题标题】:NonSerialized for multiple propertiesNonSerialized 用于多个属性
【发布时间】:2013-11-29 14:54:13
【问题描述】:

我必须为类的每个属性加上 [NonSerialized] 吗?

[NonSerialized]
public Cell Owner;
[NonSerialized]
public double Time

【问题讨论】:

  • 是的,你必须这样做(如果你不希望所有这些字段都被序列化)
  • 否;只有那些你不想被序列化的。此外,这些是字段,而不是属性。
  • [NonSerialized] 建议您使用BinaryFormatter,在这种情况下,我认为另一个重要的建议是:要非常小心 - 它可能很脆弱。就个人而言,我总是建议人们使用不同的序列化程序;几乎任何其他序列化器比这个。除了NetDataContractSerializer - 也不要使用它;p
  • 特别是我有一个球类列表。类保存位置、速度和其他杂项的信息。球的属性。我想随时保存/恢复。恢复时,我只需要知道位置和速度。除了序列化之外,您是否建议任何其他安全且简单的方法?因为我不是程序员,我的主要目的是别的。我不想淹没在编程实践和代码行中:)

标签: c# nonserializedattribute


【解决方案1】:

如果查看属性定义(http://msdn.microsoft.com/en-us/library/system.nonserializedattribute.aspx):

[AttributeUsageAttribute(AttributeTargets.Field, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class NonSerializedAttribute : Attribute

AttributeTargets.Field告诉你可以在字段上使用,不可继承

因此,您必须在您不希望可序列化的字段上使用它。

【讨论】:

    猜你喜欢
    • 2011-12-03
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多