方法 : クラスまたは構造体に基本的なデータ コントラクトを作成する
このトピックでは、クラスまたは構造体を使ってデータ コントラクトを作成する基本的な手順を示します。データ コントラクトおよびその使用方法詳細情報、「データ コントラクトの使用」を参照してください。
基本的な Windows Communication Foundation (WCF) サービスおよびクライアントの作成方法を順を追って解説したチュートリアルが必要な場合は、「チュートリアル入門」を参照してください。基本的なサービスとクライアントで構成される実際のサンプル アプリケーションについては、「基本的なデータ コントラクト」を参照してください。
クラスまたは構造体に基本的なデータ コントラクトを作成するには
クラスに DataContractAttribute 属性を適用することにより、データ コントラクトを持つ型であることを宣言します。パブリック型は、属性のないものも含めてすべてシリアル化されます。DataContractAttribute 属性がない場合は、DataContractSerializer によってデータ コントラクトが推論されます。詳細については、次のトピックを参照してください。「シリアル化可能な型」を参照してください。
シリアル化するメンバー (プロパティ、フィールド、またはイベント) を定義します。これは、該当する各メンバーに DataMemberAttribute 属性を適用することで行います。このようなメンバーのことを、データ メンバーと呼びます。既定では、すべてのパブリック型がシリアル化されます。詳細については、次のトピックを参照してください。「シリアル化可能な型」を参照してください。
注 :
プライベート フィールドであっても、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