Delen via


Procedure: Een basisgegevenscontract maken voor een klasse of structuur

In dit onderwerp worden de basisstappen beschreven voor het maken van een gegevenscontract met behulp van een klasse of structuur. Zie Gegevenscontracten gebruiken voor meer informatie over gegevenscontracten en hoe ze worden gebruikt.

Zie de zelfstudie Aan de slag voor een zelfstudie die de stappen doorloopt voor het maken van een eenvoudige WCF-service (Windows Communication Foundation) en -client. Zie Basic Data Contract voor een werkende voorbeeldtoepassing die bestaat uit een basisservice en client.

Een basisgegevenscontract maken voor een klasse of structuur

  1. Declareer dat het type een gegevenscontract heeft door het DataContractAttribute kenmerk toe te passen op de klasse. Houd er rekening mee dat alle openbare typen, inclusief die zonder kenmerken, serialiseerbaar zijn. Hiermee DataContractSerializer wordt een gegevenscontract afgeleid als het DataContractAttribute kenmerk afwezig is. Zie Serializable Types voor meer informatie.

  2. Definieer de leden (eigenschappen, velden of gebeurtenissen) die worden geserialiseerd door het DataMemberAttribute kenmerk toe te passen op elk lid. Deze leden worden gegevensleden genoemd. Standaard zijn alle openbare typen serialiseerbaar. Zie Serializable Types voor meer informatie.

    Notitie

    U kunt het DataMemberAttribute kenmerk toepassen op privévelden, waardoor de gegevens zichtbaar worden gemaakt voor anderen. Zorg ervoor dat het lid geen gevoelige gegevens bevat.

Opmerking

In het volgende voorbeeld ziet u hoe u een gegevenscontract voor het Person type maakt door de DataContractAttribute en DataMemberAttribute kenmerken toe te passen op de klasse en de bijbehorende leden.

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

Zie ook