Share via


Procedura: creare un contratto dati di base per una classe o una struttura

In questo argomento vengono illustrati i passaggi di base per creare un contratto dati utilizzando una classe o una struttura. Per ulteriori informazioni su sui contratti dati e sul modo in cui vengono utilizzati, vedere Utilizzo di contratti dati.

Per un'esercitazione in cui vengono illustrati i passaggi della creazione di un servizio e di un client Windows Communication Foundation (WCF) di base, vedere Esercitazione introduttiva. Per un'applicazione di esempio funzionante costituita da un servizio di base e un client, vedere Contratto dati di base.

Per creare un contratto dati di base per una classe o una struttura

  1. Dichiarare che il tipo è associato a un contratto dati applicando l'attributo DataContractAttribute alla classe. Si noti che tutti i tipi pubblici, inclusi quelli senza attributi, sono serializzabili. Tramite DataContractSerializer viene dedotto un contratto dati se è assente l'attributo DataContractAttribute. Per ulteriori informazioni, vedere Tipi serializzabili.

  2. Definire i membri (proprietà, campi o eventi) serializzati applicando l'attributo DataMemberAttribute a ogni membro. Questi membri vengono definiti membri dati. Per impostazione predefinita, tutti i tipi pubblici sono serializzabili. Per ulteriori informazioni, vedere Tipi serializzabili.

    ms733811.note(it-it,VS.100).gifNota:
    È possibile applicare l'attributo DataMemberAttribute ai campi privati, per esporre i dati ad altri utenti. Assicurarsi che il membro non contenga dati riservati.

Esempio

Nell'esempio seguente viene illustrato come creare un contratto dati per il tipo Person applicando gli attributi DataContractAttribute e DataMemberAttribute alla classe e ai relativi membri.

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

Vedere anche

Attività

Esempio della guida introduttiva

Riferimento

DataContractAttribute
DataMemberAttribute

Concetti

Utilizzo di contratti dati

Altre risorse

Esercitazione introduttiva