Vorgehensweise: Erstellen eines grundlegenden Datenvertrags für eine Klasse oder StrukturHow to: Create a Basic Data Contract for a Class or Structure

In diesem Thema werden die grundlegenden Schritte zum Erstellen eines Datenvertrags mithilfe einer Klasse oder Struktur beschrieben.This topic shows the basic steps to create a data contract using a class or structure. Weitere Informationen über Datenverträge und deren Verwendung finden Sie unter mithilfe von Datenverträgen.For more information about data contracts and how they are used, see Using Data Contracts.

Ein Lernprogramm, das durch die Schritte zum Erstellen einer grundlegenden Windows Communication Foundation (WCF)-Dienst und Client führt, finden Sie unter der Lernprogramm für erste Schritte.For a tutorial that walks through the steps of creating a basic Windows Communication Foundation (WCF) service and client, see the Getting Started Tutorial. Eine funktionierende beispielanwendung, aus denen ein grundlegender Dienst und Client besteht, finden Sie unter grundlegenden Datenvertrag.For a working sample application that consists of a basic service and client, see Basic Data Contract.

So erstellen Sie einen grundlegenden Datenvertrag für eine Klasse oder StrukturTo create a basic data contract for a class or structure

  1. Deklarieren Sie, dass der Typ einen Datenvertrag aufweist, indem Sie das DataContractAttribute-Attribut auf die Klasse anwenden.Declare that the type has a data contract by applying the DataContractAttribute attribute to the class. Beachten Sie, dass alle öffentlichen Typen, einschließlich der Typen ohne Attribute, serialisierbar sind.Note that all public types, including those without attributes, are serializable. Der DataContractSerializer leitet einen Datenvertrag ab, wenn das DataContractAttribute-Attribut nicht vorhanden ist.The DataContractSerializer infers a data contract if the DataContractAttribute attribute is absent. Weitere Informationen finden Sie unter serialisierbaren Typen.For more information, see Serializable Types.

  2. Definieren Sie die zu serialisierenden Member (Eigenschaften, Felder oder Ereignisse), indem Sie das DataMemberAttribute-Attribut auf die einzelnen Member anwenden.Define the members (properties, fields, or events) that are serialized by applying the DataMemberAttribute attribute to each member. Diese Member werden als Datenmember bezeichnet.These members are called data members. Standardmäßig sind alle öffentlichen Typen serialisierbar.By default, all public types are serializable. Weitere Informationen finden Sie unter serialisierbaren Typen.For more information, see Serializable Types.

    Hinweis

    Sie können das DataMemberAttribute-Attribut auf private Felder anwenden und so bewirken, dass die Daten für andere verfügbar gemacht werden.You can apply the DataMemberAttribute attribute to private fields, causing the data to be exposed to others. Stellen Sie sicher, dass der Member keine vertraulichen Daten enthält.Be sure that the member does not contain sensitive data.

BeispielExample

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.The following example shows how to create a data contract for the Person type by applying the DataContractAttribute and DataMemberAttribute attributes to the class and its members.

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 auchSee Also

DataContractAttribute
DataMemberAttribute
Verwenden von DatenverträgenUsing Data Contracts
Tutorial mit ersten SchrittenGetting Started Tutorial
Erste SchritteGetting Started