Postupy: Vytvoření základního kontraktu dat pro třídu nebo strukturu

Toto téma ukazuje základní kroky k vytvoření kontraktu dat pomocí třídy nebo struktury. Další informace o kontraktech dat a jejich použití najdete v tématu Použití kontraktů dat.

Kurz, který vás provede postupem vytvoření základní služby Windows Communication Foundation (WCF) a klienta, najdete v úvodním kurzu. Pracovní ukázková aplikace, která se skládá ze základní služby a klienta, naleznete v tématu Základní kontrakt dat.

Vytvoření základního datového kontraktu pro třídu nebo strukturu

  1. Deklarujte, že typ má datový kontrakt použitím DataContractAttribute atributu na třídu. Všimněte si, že všechny veřejné typy, včetně těch bez atributů, jsou serializovatelné. Odvození DataContractSerializer datového kontraktu DataContractAttribute , pokud atribut chybí. Další informace naleznete v tématu Serializovatelné typy.

  2. Definujte členy (vlastnosti, pole nebo události), které jsou serializovány použitím atributu u každého člena DataMemberAttribute . Těmto členům se říká datové členy. Ve výchozím nastavení jsou všechny veřejné typy serializovatelné. Další informace naleznete v tématu Serializovatelné typy.

    Poznámka:

    Atribut můžete použít DataMemberAttribute u privátních polí, což způsobí, že data budou zpřístupněna ostatním. Ujistěte se, že člen neobsahuje citlivá data.

Příklad

Následující příklad ukazuje, jak vytvořit kontrakt dat pro Person typ použitím DataContractAttribute a DataMemberAttribute atributy třídy a jejích členů.

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

Viz také