Compartilhar via


Exemplo de serviço de AJAX utilizando tipos complexos

O exemplo ComplexTypeAjaxService demonstra como usar o WCF (Windows Communication Foundation) para criar um serviço Asynchronous JavaScript And XML (AJAX) de ASP.NET que cria instâncias de tipos complexos e as envia entre o serviço e o cliente como JSON (JavaScript Object Notation). Você pode acessar um serviço AJAX usando o código JavaScript de um cliente do navegador da Web. Este exemplo se baseia no exemplo Serviço AJAX básico.

O suporte a AJAX no WCF é otimizado para uso com AJAX do ASP.NET por meio do controle ScriptManager. Para obter um exemplo de como usar o WCF com ASP.NET AJAX, consulte os Exemplos de AJAX.

Observação

O procedimento de instalação e as instruções de compilação dessa amostra estão no final deste tópico.

O serviço no exemplo a seguir é um serviço WCF sem código específico de AJAX. Como o atributo WebGetAttribute não é aplicado, o verbo HTTP padrão ("POST") é usado. O serviço tem uma operação, DoMath, que retorna um tipo complexo chamado MathResult. O tipo complexo é um tipo de contrato de dados padrão, que também não contém nenhum código específico de AJAX.

[DataContract]
public class MathResult
{
    [DataMember]
    public double sum;
    [DataMember]
    public double difference;
    [DataMember]
    public double product;
    [DataMember]
    public double quotient;
}

Crie um ponto de extremidade de AJAX no serviço usando WebScriptServiceHostFactory, como no exemplo Serviço AJAX básico.

A página da Web do cliente ComplexTypeClientPage.aspx contém ASP.NET e código JavaScript para invocar o serviço quando o usuário clicar no botão Executar cálculo na página. O código para invocar o serviço constrói um corpo JSON e o envia usando HTTP POST, semelhante ao exemplo Serviço AJAX usando HTTP POST.

Depois que a chamada de serviço for bem-sucedida, você poderá acessar os membros de dados individuais (sum, difference, product e quotient) no objeto JavaScript resultante.

function onSuccess(mathResult){
     document.getElementById("sum").value = mathResult.sum;
     document.getElementById("difference").value = mathResult.difference;
     document.getElementById("product").value = mathResult.product;
     document.getElementById("quotient").value = mathResult.quotient;
}

Para configurar, compilar, e executar o exemplo

  1. Verifique se você executou os exemplos de procedimento de instalação única para o Windows Communication Foundation.

  2. Crie a solução ComplexTypeAjaxService.sln conforme descrito em Compilando os exemplos do Windows Communication Foundation .

  3. Navegue até http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (não abra ComplexTypeClientPage.aspx no navegador de dentro do diretório do projeto).

Confira também