Suporte POCO

O exemplo POCO demonstra o suporte de serialização para tipos não marcados, ou seja, tipos aos quais os atributos de serialização não foram aplicados, às vezes chamados de tipos POCO (Plain Old CLR Object). O DataContractSerializer infere um contrato de dados para todos os tipos públicos não marcados que têm um construtor sem parâmetros. Os contratos de dados permitem que você passe dados estruturados de e para serviços. Para obter mais informações sobre tipos não marcados, consulte Tipos serializáveis.

Este exemplo é baseado em Introdução, mas usa números complexos em vez de tipos numéricos primitivos. Também é semelhante ao exemplo de Contrato de Dados Básicos , exceto que os DataContractAttribute atributos e DataMemberAttribute não são usados.

O serviço é hospedado pelo IIS (Serviços de Informações da Internet) e o cliente é um aplicativo de console (.exe).

Nota

O procedimento de configuração e as instruções de compilação para este exemplo estão localizados no final deste tópico.

A ComplexNumber classe é usada no ServiceContract. O ComplexNumber tipo não tem os DataContractAttribute atributos e DataMemberAttribute , conforme mostrado no código de exemplo a seguir. Por padrão, todas as propriedades e campos públicos são serializados.

public class ComplexNumber
{
    public double Real;
    public double Imaginary;
    public ComplexNumber()
    {
        Real = double.MinValue;
        Imaginary = double.MinValue;
    }
    public ComplexNumber(double real, double imaginary)
    {
        this.Real = real;
        this.Imaginary = imaginary;
    }
}

Para configurar, compilar e executar o exemplo

  1. Certifique-se de ter executado o procedimento de instalação única para os exemplos do Windows Communication Foundation.

  2. Para criar a edição C# ou Visual Basic .NET da solução, siga as instruções em Criando os exemplos do Windows Communication Foundation.

  3. Para executar o exemplo em uma configuração de máquina única ou cruzada, siga as instruções em Executando os exemplos do Windows Communication Foundation.

Consulte também