Share via


方法 : クラスまたは構造体に基本的なデータ コントラクトを作成する

このトピックでは、クラスまたは構造体を使ってデータ コントラクトを作成する基本的な手順を示します。データ コントラクトおよびその使用方法詳細情報、「データ コントラクトの使用」を参照してください。

基本的な Windows Communication Foundation (WCF) サービスおよびクライアントの作成方法を順を追って解説したチュートリアルが必要な場合は、「チュートリアル入門」を参照してください。基本的なサービスとクライアントで構成される実際のサンプル アプリケーションについては、「基本的なデータ コントラクト」を参照してください。

クラスまたは構造体に基本的なデータ コントラクトを作成するには

  1. クラスに DataContractAttribute 属性を適用することにより、データ コントラクトを持つ型であることを宣言します。パブリック型は、属性のないものも含めてすべてシリアル化されます。DataContractAttribute 属性がない場合は、DataContractSerializer によってデータ コントラクトが推論されます。詳細については、次のトピックを参照してください。「シリアル化可能な型」を参照してください。

  2. シリアル化するメンバー (プロパティ、フィールド、またはイベント) を定義します。これは、該当する各メンバーに DataMemberAttribute 属性を適用することで行います。このようなメンバーのことを、データ メンバーと呼びます。既定では、すべてのパブリック型がシリアル化されます。詳細については、次のトピックを参照してください。「シリアル化可能な型」を参照してください。

    ms733811.note(ja-jp,VS.100).gif注 :
    プライベート フィールドであっても、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

概念

データ コントラクトの使用

その他のリソース

チュートリアル入門