Serializable与NonSerialized类属性

时间:2011-11-01 14:18:49

标签: c# asp.net serialization

我有一个类,只有属性,类看起来像:

public class CmsPage
{

    private int _subjectId;

    public int SubjectID
    {
        get { return _subjectId; }
        set { _subjectId = value; }
    }
}

我们也可以创建如下的类:

[Serializable]
public class CmsPage
{

    [NonSerialized] private int _subjectId;
    public int SubjectID
    {
        get { return _subjectId; }
        set { _subjectId = value; }
    }
}

[Serializable]
public class CmsPage
{
    public int SubjectID
    {
        get;
        set ;
    }
}

所有三个班级之间有什么区别?

1 个答案:

答案 0 :(得分:0)

  • 第一个示例未标有Serializable属性,因此不能。
  • 我认为在第二个NonSerializable属性被浪费,因为它是针对私有成员的,但它是可序列化的,因为它具有属性。
  • 第三个是Serializable,但在其他方面与其他相同。它使用的是autoproperty的扩展形式,否则可以写成:public int SubjectID {get; set;}