默认情况下,在c#

时间:2015-07-28 15:07:05

标签: c# .net class serialization field

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

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

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

该类被序列化为XML。

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

1 个答案:

答案 0 :(得分:3)

根据您对类型的确切排序方式,您可以在班级中使用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        
}