Como: Criar um contrato de dados básicos para uma classe ou estrutura
Este tópico mostra as etapas básicas para criar um contrato de dados usando uma classe ou estrutura. Para obter mais informações sobre contratos de dados e como eles são usados, consulte Usando contratos de dados.
Para obter um tutorial que percorre as etapas de criação de um serviço e cliente básico do Windows Communication Foundation (WCF), consulte o Tutorial de Introdução. Para um aplicativo de exemplo de trabalho que consiste em um serviço básico e cliente, consulte Contrato de dados básico.
Para criar um contrato de dados básico para uma classe ou estrutura
Declare que o tipo tem um contrato de dados aplicando o DataContractAttribute atributo à classe. Observe que todos os tipos públicos, incluindo aqueles sem atributos, são serializáveis. O DataContractSerializer infere um contrato de dados se o DataContractAttribute atributo estiver ausente. Para obter mais informações, consulte Tipos serializáveis.
Defina os membros (propriedades, campos ou eventos) que são serializados aplicando o DataMemberAttribute atributo a cada membro. Esses membros são chamados de membros de dados. Por padrão, todos os tipos públicos são serializáveis. Para obter mais informações, consulte Tipos serializáveis.
Nota
Você pode aplicar o DataMemberAttribute atributo a campos privados, fazendo com que os dados sejam expostos a outras pessoas. Certifique-se de que o membro não contém dados confidenciais.
Exemplo
O exemplo a seguir mostra como criar um contrato de dados para o Person
tipo aplicando os DataContractAttribute atributos e DataMemberAttribute à classe e seus membros.
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