Vorgehensweise: Erstellen eines grundlegenden Datenvertrags für eine Klasse oder Struktur

In diesem Thema werden die grundlegenden Schritte zum Erstellen eines Datenvertrags mithilfe einer Klasse oder Struktur beschrieben. Weitere Informationen finden Sie unter zu Datenverträgen und zu ihrer Verwendung finden Sie unter Verwenden von Datenverträgen.

Ein Lernprogramm, in dem Sie durch die Schritte zur Erstellung eines grundlegenden Windows Communication Foundation (WCF)-Dienstes und -Clients geführt werden, finden Sie unter Lernprogramm 'Erste Schritte'. Eine funktionierende Beispielanwendung, die aus einem grundlegenden Dienst und einem Client besteht, finden Sie unter Grundlegender Datenvertrag.

So erstellen Sie einen grundlegenden Datenvertrag für eine Klasse oder Struktur

  1. Deklarieren Sie, dass der Typ einen Datenvertrag aufweist, indem Sie das DataContractAttribute-Attribut auf die Klasse anwenden. Beachten Sie, dass alle öffentlichen Typen, einschließlich der Typen ohne Attribute, serialisierbar sind. Der DataContractSerializer leitet einen Datenvertrag ab, wenn das DataContractAttribute-Attribut nicht vorhanden ist. Weitere Informationen finden Sie unter, siehe Serialisierbare Typen.

  2. Definieren Sie die zu serialisierenden Member (Eigenschaften, Felder oder Ereignisse), indem Sie das DataMemberAttribute-Attribut auf die einzelnen Member anwenden. Diese Member werden als Datenmember bezeichnet. Standardmäßig sind alle öffentlichen Typen serialisierbar. Weitere Informationen finden Sie unter, siehe Serialisierbare Typen.

    Hinweis

    Sie können das DataMemberAttribute-Attribut auf private Felder anwenden und so bewirken, dass die Daten für andere verfügbar gemacht werden. Stellen Sie sicher, dass der Member keine vertraulichen Daten enthält.

Beispiel

Das folgende Beispiel zeigt, wie Sie einen Datenvertrag für den Person-Typ erstellen, indem Sie die Attribute DataContractAttribute und DataMemberAttribute auf die Klassen und ihre Member anwenden.

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; }
    }
}
<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 

Siehe auch

DataContractAttribute
DataMemberAttribute
Verwenden von Datenverträgen
Lernprogramm 'Erste Schritte'
Erste Schritte