HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Web szerviz jellemzőit leíró dokumentumok generálása programból


Példaprogram letöltése

16083 bájt

A Webes szervizek saját alkalmazásból való eléréséhez szükség van a szerviz jellemzőinek ismeretére. Ezeknek az információknak a lekérdezésére használhatjuk a Visual Studio.NET parancssori eszközét, a DISCO.EXE alkalmazást. Azonban előfordulhat, hogy ezeket a dokumentumokat programból szeretnénk lekérdezni, és a merevlemezre menteni. Ehhez a .NET Framework biztosítja a megfelelő osztályokat, melyeket most cikkünkben bemutatunk.

Mellékelt példa megnyitása előtt szükséges egy Service nevű virtuális könyvtár létrehozása, mely a példa mappájában található Service alkönyvtárra mutat. Ehhez nyissa meg a mappa Tulajdonság ablakát és itt a Webmegosztás lapon engedélyezze a mappa megosztását olvasási és parancsfájlok futtatási jogával.
A kliens alkalmazás futtatása előtt gondoskodnunk kell arról, hogy a Web szerver virtuális mappájában engedélyezzük a névtelen hozzáférést.
Az alkalmazás űrlapján elhelyeztünk egy szövegmezőt, melyben megadhatunk egy tetszőleges URL-t, melyen egy Webes szerviz elérhető. A példához mellékeltünk egy szervizt, hogy az rögtön kipróbálható legyen.
A szövegmezőben megadva a megfelelő URL-t csak a MŰVELET gombra kell kattintanunk, és a szerviz jellemzőit leíró dokumentumok – WService.disco, WService.wsdl, és result.discomap -, a Client mappában található results alkönyvtárba kerülnek.
A .NET Framework System.Web.Services.Discovery nevű névterében találjuk meg azokat az osztályokat, melyekkel a szerviz jellemzői feltárhatók.
A DiscoveryClientProtocol osztály segítségével végezhető el a procedúra jelentős része. Az osztály metódusaival generálhatók a dokumentumok, melyek leírják a szerviz viselkedését, felhasználásának módját. A következőkben bemutatjuk, milyen metódusok meghívása szükséges a dokumentumok generálásához.
DiscoverAny
Osztály: DiscoveryClientProtocol
public DiscoveryDocument DiscoverAny(
string url
);
A metódus észleli, hogy a megadott URL szerviz dokumentum, jellemző, vagy XSD séma. Amennyiben az URL csak egy referencia a dokumentumokra, akkor a Discover metódust kell meghívni.
Paraméterek
string url
A szerviz alkalmazás URL-je.
Visszatérési érték
Tartalmazza a szerviz URL-jének végigpásztázása után észlelt dokumentumokat.
ResolveAll
Osztály: DiscoveryClientProtocol
public void ResolveAll();
Észleli az összes létező referenciát, és elhelyezi azokat a Documents kollekcióban.
A jellemző property-k:
Documents
Osztály: DiscoveryClientProtocol
public DiscoveryClientDocumentCollection Documents {get;}
A művelet eredményeképpen észlelt, a szerviz alkalmazás jellemzőit leíró dokumentumok gyűjteménye.
A feladatban néhány lépésben végeztük el a műveletet.
Először szükség volt egy DiscoveryClientProtocol objektumra:
DiscoveryClientProtocol c = new DiscoveryClientProtocol();
Beállítjuk a megfelelő jogosultságokat a szerviz eléréséhez.
c.Credentials = CredentialCache.DefaultCredentials;
Létrehozunk egy DiscoveryDocument objektumot a lekérdezéshez.
DiscoveryDocument doc;
Lekérdezzük a dokumentumokat.
doc = c.DiscoverAny(textBox1.Text);
...
Ha talált a lekérdezés dokumentumot, vagyis az URL megfelelő volt, akkor megjelenítjük a ListBox kontrolban az eredményt.
if (c.Documents.Count > 0) FillList(c);
Majd a RESULTS mappába írjuk a dokumentumokat.
c.WriteAll(Application.StartupPath + "\\results", "results.discomap");
A FillList metódusban a következőképpen listázzuk ki a dokumentumok jellemzőit:
foreach (DictionaryEntry entry in c.Documents) 
{
  listBox1.Items.Add(entry.Key.ToString());       
}

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 325. 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 |