繁体   English   中英

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

[英]make fields non-serialized by default in c#

是否可以在 c# 中默认使字段非序列化,在 .NET 2.0 中也可以使用?

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

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

该类被序列化为 XML。

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

根据您序列化类型的确切方式,您可以在类上使用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        
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM