Comment : créer un contrat de données de base destiné à une classe ou une structure
Cette rubrique présente les étapes de base pour créer un contrat de données à l'aide d'une classe ou d'une structure. Pour plus d'informations sur le sujet suivant les contrats de données et leur utilisation, consultez Utilisation de contrats de données.
Pour consulter le didacticiel sur les étapes de la création d'un service et d'un client Windows Communication Foundation (WCF) de base, consultez Didacticiel de mise en route. Pour obtenir un exemple d'application fonctionnel qui se compose d'un service et d'un client simples, consultez Basic Data Contract.
Pour créer un contrat de données de base destiné à une classe ou une structure
Déclarez que le type a un contrat de données en appliquant l'attribut DataContractAttribute à la classe. Notez que tous les types publics, y compris ceux sans attributs, sont sérialisables. Le DataContractSerializer déduit un contrat de données si l'attribut DataContractAttribute est absent. Pour plus d'informations, consultez , consultez Types sérialisables.
Définissez les membres (propriétés, champs ou événements) sérialisés en appliquant l'attribut DataMemberAttribute à chaque membre. Ces membres sont appelés des membres de données. Par défaut, tous les types publics sont sérialisables. Pour plus d'informations, consultez , consultez Types sérialisables.
Remarque : Vous pouvez appliquer l'attribut DataMemberAttribute aux champs privés, ce qui expose les données aux autres. Vérifiez que le membre ne contient pas de données sensibles.
Exemple
L'exemple suivant montre comment créer un contrat de données pour le type Person
en appliquant les attributs DataContractAttribute et DataMemberAttribute à la classe et à ses membres.
<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; }
}
}
Voir aussi
Tâches
Référence
DataContractAttribute
DataMemberAttribute
Concepts
Utilisation de contrats de données