HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Interfész metódusainak implementálása Web-szervizekben


Példaprogram letöltése

24504 bájt

Az interfészek igen hasznos objektumai a menedzselt kódnak is, hiszen elegendő csak a metódusok deklarációit megadni az interfészben, az implementáció pedig teljesen egyedi lehet az interfész tulajdonságait öröklő osztályban. Ezeket az előnyöket felhasználhatjuk Web-szerviz alkalmazásainkban is. Cikkünkben bemutatunk egy példát, melyben egy szerviz két osztálya egy közös interfész azonos metódusát implementálja kétféleképpen.

A mellékelt példa megnyitása előtt szükséges egy IFService nevű virtuális könyvtár létrehozása, mely a példa könyvtárában található IFService mappára mutat. Ehhez futtassa le a mellékelt CreateVD.js parancsállományt.
Interfész létrehozása
Az IFService projekt IMethods.cs állományában található meg az interfész kódja, mely egy függvény deklarációját tartalmazza.
public interface IMethods
{
  string GetInformation();    
}
A GetInformation metódust fogjuk implementálni a projekt két szervizében.
Szervizosztályok létrehozása
Az InfoService01 és InfoService02 osztályok mindegyike örökli az IMethods interfész jellemzőit, vagyis az ősök között fel kel tüntetni az interfész nevét is a WebService osztály mellett.
public class InfoService01 : System.Web.Services.WebService, IMethods
{
  ...
A metódust az egyik szerviz úgy implementálja, hogy a függvény visszatérési értéke a szervizt futtató számítógép neve legyen.
[WebMethod]
public string GetInformation()
{
  return "A szerver gép neve: " + Environment.MachineName;
}
Míg a másik szerviz úgy, hogy a szerver IP címével térjen vissza.
[WebMethod]
public string GetInformation()
{
  return "Felhasználó IP-címe: " + this.Context.Request.UserHostAddress;
}
Kliensalkalmazás létrehozása
A kliensalkalmazásban a két szervizhez két webes referenciára van szükség. A referenciák hozzáadása után a proxy osztályok kódját tartalmazó állományok a kliensalkalmazás Web References mappájának localhost1 és localhost2 mappáiban találhatók meg.
A proxy osztályok példányosítása és a metódus meghívása mindkét szerviz esetén azonos módon történik, csupán a végeredmény különböző.
localhost1.InfoService01 proxy = new localhost1.InfoService01();
label4.Text = proxy.GetInformation();
...
A Form LEKÉRDEZÉS feliratú gombjaival hívhatjuk meg a metódusokat. A visszatérési értékek a két címkén olvashatók.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 652. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |