Compartir a través de


Cómo: Crear un contrato de datos básicos para una clase o estructura

En este tema se muestran los pasos básicos para crear un contrato de datos mediante una clase o estructura. Para obtener más información sobre los contratos de datos y cómo se utilizan, consulte Utilización de contratos de datos.

Para obtener un tutorial que explica los pasos para crear un servicio Windows Communication Foundation (WCF) básico, consulte Tutorial de introducción. Para obtener una aplicación de ejemplo operativa compuesta por un servicio básico y cliente, consulte Contrato de datos básico.

Crear un contrato de datos básicos para una clase o estructura

  1. Declare que el tipo tiene un contrato de datos aplicando el atributo DataContractAttribute a la clase. Observe que todos los tipos públicos, incluidos aquéllos sin atributos, son serializables. DataContractSerializer deduce un contrato de datos si el atributo DataContractAttribute está ausente. Para obtener más información, vea , consulte Tipos serializables.

  2. Defina los miembros (propiedades, campos o eventos) que se serializan aplicando el atributo DataMemberAttribute a cada miembro. Estos miembros se denominan miembros de datos. De forma predeterminada, todos los tipos públicos son serializables. Para obtener más información, vea , consulte Tipos serializables.

    ms733811.note(es-es,VS.100).gifNota:
    Puede aplicar el atributo DataMemberAttribute a los campos privados y, de este modo, se expondrán los datos a otros. Asegúrese de que el miembro no contiene información confidencial.

Ejemplo

En el ejemplo siguiente, se muestra cómo crear un contrato de datos para el tipo Person mediante la aplicación de los atributos DataContractAttribute y DataMemberAttribute a la clase y sus miembros.

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

Vea también

Tareas

Ejemplo de introducción

Referencia

DataContractAttribute
DataMemberAttribute

Conceptos

Utilización de contratos de datos

Otros recursos

Tutorial de introducción