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