Home   Cover Cover Cover Cover
 

SOAP-Nachrichtenformat


Zu Abschnitt 7.3.1 des Buchs

In .NET wird mit dem Attribut [SoapRpcService] das vom Web-Service verstandene Nachrichtenformat um rpc/encoded erweitert (sonst document/literal). Dazu wird der .NET-Namensraum System.Web.Services.Protocols benötigt. Die Methoden müssen einen eindeutige Namen haben, darum kann die Methode GetTime nicht überladen werden (siehe GetTime2).

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

namespace Kapitel7 {
  [SoapRpcService] // Web-Service benutzt das Nachrichtenformat rpc/encoded
  public class TimeService : WebService {
    [WebMethod(Description="Returns the current time")]
    public string GetTime() { 
      return System.DateTime.Now.ToLongTimeString(); 
    }
    [WebMethod(Description="Returns the current server time in a long or short format")]
    public string GetTime2(bool shortForm) {
      if (shortForm) return DateTime.Now.ToShortTimeString();
      return this.GetTime();
    }
  }
}

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/TimeService2.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.