2011-11-01 72 views
2

我有一个类只有属性,类看起来像:序列化VS非序列化类的属性

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

所有三个类别之间有什么区别?

+0

我不知道你是什么之后,你问的是序列化和非序列化的属性是如何使用的? –

+0

你的问题的范围是什么?这些类有许多不同之处,根据您的使用情况,答案会有所不同。例如,这些类对于反射的看法与它们在SOAP消息中的外观有很大不同。你可以说得更详细点吗? –

回答

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