DataMember属性设置为字段或属性?

时间:2011-08-25 14:27:34

标签: c# attributes

我应该以哪种方式使用DataMember属性?

 [DataMember]
 internal protected string _FirstName="";

[DataMember]
public string FirstName { get { return _FirstName; } 
internal protected set { _FirstName=(value!=null?value:""); } }

II。

internal protected string _FirstName="";

    [DataMember]
    public string FirstName { get { return _FirstName; } 
    internal protected set { _FirstName=(value!=null?value:""); } }

III。

[DataMember]
internal protected string _FirstName="";


    public string FirstName { get { return _FirstName; } 
    internal protected set { _FirstName=(value!=null?value:""); } }

2 个答案:

答案 0 :(得分:7)

1st绝对不正确,因为序列化将发生两次。 在第二和第三之间我个人更喜欢第二,作为封装实现。

答案 1 :(得分:4)

第二个。这仅将属性公开为数据成员。那正是你想要的。你不希望暴露这个领域。