Home   Cover Cover Cover Cover
 

Einfacher TimeService-Client in .NET


Zu Abschnitt 7.2 des Buchs

Dieses Beispiel zeigt einen .NET-Client für das einfache Web-Service "TimeService".

client/NetClient/NetClient.cs
using System;
using TimeClient; //Namespace des erzeugten Proxies
namespace Kapitel7 {
  public class NetClient {
    public static void Main(string[] args) {
      TimeService service = new TimeService();
      Console.WriteLine("Die Zeit am Server ist: ");
      string time = service.GetTime();
      Console.WriteLine(time);
    }
  }
}

Ausgabe der Client-Anwendung

Die Klasse NetClient verwendet für den Aufruf von GetTime ein Proxy "TimeClient.TimeService", welches über das Werkzeug "wsdl.exe" erzeugt wurde. wsdl.exe wurde mit folgenden Parametern aufgerufen, um die Datei "TimeServiceProxy.cs" zu erzeugen:

wsdl /namespace:TimeClient /out:TimeServiceProxy.cs http://dotnet.jku.at/book/samples/7/simple/TimeService1.asmx

Die erzeugte Proxy-Datei enthält Methoden für den synchronen Aufruf (GetTime()) und für asynchronen Aufruf (BeginGetTime, EndGetTime).

client/NetClient/TimeServiceProxy.cs
//------------------------------------------------------------------------------
// 
//     This code was generated by a tool.
//     Runtime Version: 1.0.3705.209
//
//     Changes to this file may cause incorrect behavior and will be lost if 
//     the code is regenerated.
// 
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=1.0.3705.209.
// 
namespace TimeClient {
    using System.Diagnostics;
    using System.Xml.Serialization;
    using System;
    using System.Web.Services.Protocols;
    using System.ComponentModel;
    using System.Web.Services;
    
    
    /// 
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="TimeServiceSoap", Namespace="http://tempuri.org/")]
    public class TimeService : System.Web.Services.Protocols.SoapHttpClientProtocol {
        
        /// 
        public TimeService() {
            this.Url = "http://dotnet.jku.at/book/samples/7/simple/TimeService1.asmx";
        }
        
        /// 
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetTime", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string GetTime() {
            object[] results = this.Invoke("GetTime", new object[0]);
            return ((string)(results[0]));
        }
        
        /// 
        public System.IAsyncResult BeginGetTime(System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("GetTime", new object[0], callback, asyncState);
        }
        
        /// 
        public string EndGetTime(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((string)(results[0]));
        }
    }
}