【问题标题】:Serializable vs NonSerialized class properties可序列化与非序列化类属性
【发布时间】:2011-11-01 14:18:49
【问题描述】:

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

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 ;
    }
}

这三个类有什么区别?

【问题讨论】:

  • 您的问题范围是什么?这些类之间存在许多差异,答案将根据您的用例而有所不同。例如,这些类在反射中的外观与它们在 SOAP 消息中的外观非常不同。你能说得更具体点吗?
  • 我不知道你在追求什么,你问的是如何使用 Serializable 和 NonSerializable 属性?

标签: c# asp.net serialization


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

【讨论】:

    猜你喜欢
    • 2016-02-03
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多