在c#中默认使字段非序列化

本文关键字:字段 序列化 默认 | 更新日期: 2023-09-27 18:05:21

是否有可能在c#中默认使字段非序列化,这在。net 2.0中也可以工作?

序列化类中的大多数字段都是非序列化的,只有少数字段需要序列化。

我知道一个属性可以应用于多个字段,但这不是我需要的。

类被序列化成XML。

[Serializable()]
class MyClass
{
  [NonSerialized]
  protected double field1;
}

在c#中默认使字段非序列化

取决于您序列化类型的方式,您可以在类上使用DataContract属性。这允许您使用DataMember属性修饰想要序列化的属性。

当与DataContractSerializer结合使用时,序列化采用选择加入的方法,并且缺少该属性的属性将不会被序列化。

using System.Runtime.Serialization;
[DataContract]
class MyClass
{      
    [DataMember]
    protected double field1; // This field is serialized
    protected double secretField; // This field is not        
}