Beispiel für AJAX-Dienst mit komplexen TypenAJAX Service Using Complex Types Sample

Dieses Beispiel veranschaulicht, wie Windows Communication Foundation (WCF) verwenden, um einen Dienst (ASP.NET Asynchronous JavaScript and XML (AJAX) zu erstellen, der Instanzen komplexer Typen erstellt und sendet diese zwischen Dienst und Client als JavaScript Object Notation (JSON).This sample demonstrates how to use Windows Communication Foundation (WCF) to create an ASP.NET Asynchronous JavaScript and XML (AJAX) service that creates instances of complex types and sends them between service and client as JavaScript Object Notation (JSON). Sie können auf einen AJAX-Dienst zugreifen, indem Sie JavaScript-Code in einem Webbrowserclient verwenden.You can access an AJAX service by using JavaScript code from a Web browser client. Dieses Beispiel baut auf den einfacher AJAX-Dienst Beispiel.This sample builds on the Basic AJAX Service sample.

AJAX-Unterstützung in WCF ist optimiert für die Verwendung mit ASP.NET AJAX über das ScriptManager Steuerelement.AJAX support in WCF is optimized for use with ASP.NET AJAX through the ScriptManager control. Ein Beispiel der Verwendung von WCF mit ASP.NET AJAX finden Sie unter der AJAX-Beispielen.For an example of using WCF with ASP.NET AJAX, see the AJAX Samples.

Hinweis

Die Setupprozedur und die Buildanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.The setup procedure and build instructions for this sample are located at the end of this topic.

Der Dienst im folgenden Beispiel ist ein WCF-Dienst ohne AJAX-spezifischen Code.The service in the following sample is a WCF service with no AJAX-specific code. Da kein WebGetAttribute-Attribut angewendet wird, wird das standardmäßige HTTP-Verb ("POST") verwendet.Because the WebGetAttribute attribute is not applied, the default HTTP verb ("POST") is used. Der Dienst hat einen Vorgang, DoMath, der einen komplexen Typ namens MathResult zurückgibt.The service has one operation, DoMath, which returns a complex type named MathResult. Der komplexe Typ ist ein Standarddatenvertragstyp, der ebenfalls keinen AJAX-spezifischen Code enthält.The complex type is a standard data contract type, which also contains no AJAX-specific code.

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

Erstellen Sie im Dienst mithilfe von WebScriptServiceHostFactory einen AJAX-Endpunkt wie im Beispiel "Einfacher AJAX-Dienst".Create an AJAX endpoint on the service by using the WebScriptServiceHostFactory, just as in the Basic AJAX Service sample.

Der Client clientwebseite ComplexTypeClientPage.aspx enthält ASP.NET-Code und JavaScript-Code zum Aufrufen des Diensts, klickt der Benutzer die Berechnung durchführen Schaltfläche auf der Seite.The client Web page ComplexTypeClientPage.aspx contains ASP.NET and JavaScript code to invoke the service when the user clicks the Perform calculation button on the page. Der Code zum Aufrufen des Diensts erstellt einen JSON-Text und sendet diese mithilfe von HTTP POST, ähnlich wie die AJAX-Dienst mithilfe von HTTP-POST Beispiel.The code to invoke the service constructs a JSON body and sends it using HTTP POST, similar to the AJAX Service Using HTTP POST sample.

Wenn der Dienstaufruf erfolgreich war, können Sie im resultierenden JaveScript-Objekt auf die einzelnen Datenmember (sum, difference, product und quotient) zugreifen.After the service call succeeds, you can access the individual data members (sum, difference, product and quotient) on the resulting JavaScript object.

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

So können Sie das Beispiel einrichten, erstellen und ausführenTo set up, build, and run the sample

  1. Stellen Sie sicher, dass Sie ausgeführt haben die Setupprozedur für die Windows Communication Foundation-Beispiele zum einmaligen.Ensure that you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. Erstellen Sie die Projektmappe ComplexTypeAjaxService.sln, wie in beschrieben Erstellen der Windows Communication Foundation-Beispiele.Build the solution ComplexTypeAjaxService.sln as described in Building the Windows Communication Foundation Samples.

  3. Navigieren Sie zu http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (Öffnen Sie ComplexTypeClientPage.aspx nicht aus dem Projektverzeichnis im Browser).Navigate to http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (do not open ComplexTypeClientPage.aspx in the browser from the project directory).

Wichtig

Die Beispiele sind möglicherweise bereits auf dem Computer installiert.The samples may already be installed on your computer. Suchen Sie nach dem folgenden Verzeichnis (Standardverzeichnis), bevor Sie fortfahren.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, fahren Sie mit Windows Communication Foundation (WCF) und Windows Workflow Foundation (WF) Samples for .NET Framework 4 aller Windows Communication Foundation (WCF) herunterladen und WFWF Beispiele.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Ajax\ComplexTypeAjaxService

Siehe auchSee Also

Einfacher AJAX-DienstBasic AJAX Service