Home   Cover Cover Cover Cover
 

SOAP-Codierung


Zu Abschnitt 7.4.2 des Buchs

In diesem Beispiel werden folgende Konzepte dargestellt:

  • Vergabe eines XML-Namensraumes (siehe Attribute [WebService(Namespace= ...)]
  • Komplexe Datentypen (siehe TimeDesc) können genau wie primitive Datentypen als Parameter verwendet werden
  • Die SOAP-Codierung kann angepasst werden (siehe [SoapElement]). Diese Anpassung ist bei einem Aufruf über HTTP-GET oder HTTP-POST nicht sichtbar. Darum wird beim Ausführen des Web-Services mit der unten angegeben HTML-Seite die Variable TimeZone von TimeDesc nicht wie erwartet als XML-Element "ZoneID" codiert. Um das Beispiel zu testen, empfehlen wir die Verwendung des Web Service Studios.

TimeService3.asmx
<%@ WebService Language="C#" Class="Kapitel7.TimeService" %>
using System;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Serialization;

namespace Kapitel7 {
  [SoapRpcService]
  [WebService(Namespace="http://dotnet.jku.at/time/", Description="Returns the time")]
  public class TimeService : WebService {
    // ... andere Methoden
    [WebMethod(Description="Returns the time description of the server")]
    public TimeDesc GetTimeDesc() {
      TimeDesc td = new TimeDesc();
      DateTime time = DateTime.Now;
      td.TimeLong = time.ToLongTimeString();
      td.TimeShort = time.ToShortTimeString();
      td.TimeZone = "1";      
      return td;
    }
  }
  public struct TimeDesc {
    public string TimeLong;
    public string TimeShort;
    [SoapElement (DataType="nonNegativeInteger", ElementName = "ZoneID")]
    public string TimeZone; 
  } 
}

Ausführung

Der nächste Link führt Sie zu einer automatisch erzeugten Seite. D.h. für den oben dargestellten Code wird eine HTML-Seite erzeugt, welche das Web-Service beschreibt und auch eine Möglichkeit zum Testen der Methoden anbietet.

http://dotnet.jku.at/book/samples/7/encoding/TimeService3.asmx

Eine weitere Möglichkeit, wie Sie dieses Web-Service testen können, ist das Webservice Studio zu verwenden, welches auf der Begleit-CD zum Buch "Die .NET-Technologie" enthalten ist.

Beim Ausfüren mit dem Webservice Studio, kann das Ergebnis so aussehen:

Webservice Studio