HOW TO:建立類別或結構的基本資料合約
本主題將示範使用類別或結構來建立資料合約的基本步驟。如需詳細資訊資料合約以及如何使用的詳細資訊,請參閱使用資料合約。
如需逐步說明建立基本 Windows Communication Foundation (WCF) 服務和用戶端之步驟的教學課程,請參閱使用者入門教學課程。 如需由基本服務和用戶端組成的工作範例應用程式,請參閱基本資料合約。
建立類別或結構的基本資料合約
請將 DataContractAttribute 屬性套用至類別,以宣告型別具有資料合約。 請注意,所有公用型別 (包括不含屬性的公用型別) 都是可序列化的。 如果沒有 DataContractAttribute 屬性,DataContractSerializer 會推斷資料合約。 如需詳細資訊,請參閱可序列化的型別。
藉由將 DataMemberAttribute 屬性 (Attribute) 套用至各個成員,定義序列化的成員 (屬性 (Property)、欄位或事件)。 這些成員稱為資料成員。 根據預設,所有公用型別都是可序列化的。 如需詳細資訊,請參閱可序列化的型別。
注意: 您可以將 DataMemberAttribute 屬性套用至私用欄位,造成資料對他人公開。 請確定成員沒有包含敏感性資料。
範例
下列範例說明如何將 DataContractAttribute 和 DataMemberAttribute 屬性套用至類別和其成員,以建立 Person
型別的資料合約。
<DataContract()> _
Public Class Person
' This member is serialized.
<DataMember()> _
Friend FullName As String
' This is serialized even though it is private.
<DataMember()> _
Private Age As Integer
' This is not serialized because the DataMemberAttribute
' has not been applied.
Private MailingAddress As String
' This is not serialized, but the property is.
Private telephoneNumberValue As String
<DataMember()> _
Public Property TelephoneNumber() As String
Get
Return telephoneNumberValue
End Get
Set
telephoneNumberValue = value
End Set
End Property
End Class
using System;
using System.Runtime.Serialization;
[DataContract]
public class Person
{
// This member is serialized.
[DataMember]
internal string FullName;
// This is serialized even though it is private.
[DataMember]
private int Age;
// This is not serialized because the DataMemberAttribute
// has not been applied.
private string MailingAddress;
// This is not serialized, but the property is.
private string telephoneNumberValue;
[DataMember]
public string TelephoneNumber
{
get { return telephoneNumberValue; }
set { telephoneNumberValue = value; }
}
}
另請參閱
工作
參考
DataContractAttribute
DataMemberAttribute