説明/参照:
Explanation:
.NET 3.5 SP1では、データコントラクトやデータメンバ属性を追加する必要はありません。そうしなければ、XMLシリアライザのように、データコントラクティブシリアライザがクラスのすべてのパブリックプロパティをシリアル化します。
ただし、これらの属性を追加しないと、多くの便利な機能が失われます。
[DataContract]がなければ、あなたのデータが住むためのXML名前空間を定義することはできません

[DataMember]がなければ、非公開のプロパティやフィールドをシリアル化することはできません

[DataMember]がなければ、シリアライゼーションの順序(Order =)を定義することはできず、DCSはすべてをシリアライズします

プロパティをアルファベット順に
[DataMember]がなければ、プロパティに異なる名前を定義することはできません(Name =)

[DataMember]がなければ、IsRequired =などの有用な属性を定義することはできません

[DataMember]がなければ、特定のパブリックプロパティを削除することはできません。すべてのパブリックプロパティは、

DCSによってシリアル化された
参照:http://stackoverflow.com/questions/4836683/when-to-use-datacontract-and-datamember-アトリビュート