Partilhar via


Serviço AJAX usando exemplo de tipos complexos

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

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

Nota

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

O serviço no exemplo a seguir é um serviço WCF sem código específico do AJAX. Como o WebGetAttribute atributo 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 do 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 AJAX no serviço usando o WebScriptServiceHostFactory, assim como no exemplo de serviço AJAX básico.

A página da Web do cliente ComplexTypeClientPage.aspx contém código ASP.NET e JavaScript para invocar o serviço quando o usuário clica 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 de 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, differenceproduct 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. Certifique-se de ter executado o procedimento de instalação única para os exemplos do Windows Communication Foundation.

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

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

Consulte também