Crearea unei clase proxy de servicii web xml

Această secțiune este dedicată tehnologiei versiunilor anterioare. Serviciile XML Web și clienții XML Web Services trebuie create utilizând Windows Communication Foundation.







Implicit, interacțiunea cu serviciile Web prin rețea este posibilă prin utilizarea protocoalelor industriale standard, inclusiv a protocolului SOAP. Anume, clientul și serviciul web comunică folosind mesaje SOAP, în care parametrii de intrare și ieșire sunt încapsulați ca XML. Din fericire, în cazul clienților de servicii Web, maparea parametrilor pentru elementele XML și transmiterea ulterioară a mesajelor SOAP prin rețea sunt efectuate de către clasa proxy.

Dacă aveți o descriere a serviciului, puteți crea o clasă proxy dacă descrierea serviciului îndeplinește cerințele din limbajul de descriere a serviciilor Web (WSDL). Descrierea serviciului definește modul de interacțiune cu serviciul web. Dacă aveți o descriere a serviciului, puteți crea o clasă proxy utilizând instrumentul Wsdl.exe. La rândul său, clientul serviciului web poate apela metodele clasei proxy care comunică cu serviciul web prin rețea, procesând mesajele SOAP transmise serviciului și primite de la acesta. Deoarece clasa proxy comunică cu serviciul web prin Internet, este recomandat să verificați dacă proprietatea URL a clasei proxy se referă la o destinație de încredere.

Implicit, protocolul SOAP prin HTTP este utilizat pentru a comunica cu serviciul web din clasa proxy. Cu toate acestea, instrumentul Wsdl.exe poate crea clase de proxy pentru a interacționa cu un serviciu Web utilizând protocolul HTTP-GET sau HTTP-POST. Pentru a specifica că clasa proxy trebuie să utilizeze HTTP-GET sau HTTP-POST, specificați comutatorul / protocol pentru Wsdl.exe. așa cum este descris în tabelul următor.

Utilizând instrumentul Wsdl.exe pentru a crea o clasă proxy de servicii XML Web

Pentru a crea o clasă proxy, puteți utiliza din linia de comandă instrumentul Limbaj de descriere a serviciilor web (Wsdl.exe), specificând (cel puțin) adresa URL a serviciului web sau a descrierii serviciului sau calea către descrierea serviciului stocată.

Următoarele sunt argumentele utilizate în mod obișnuit pentru Wsdl.exe. Pentru sintaxa completă a Wsdl.exe, consultați Instrumentul de limbă pentru descrierea serviciilor Web (Wsdl.exe).

Dacă este specificat un fișier, furnizați un fișier care conține descrierea serviciului. Un exemplu.

Limba în care este creată clasa proxy. Valorile CS, VB și JS sunt furnizate, ceea ce corespunde C #, Visual Basic .NET și JScript .NET. Limba implicită este C #. (Opțional)

Un protocol folosit pentru a interacționa cu metodele de servicii web. SOAP, HTTP-GET și HTTP-POST sunt furnizate. Implicit, se utilizează protocolul SOAP. (Opțional).

Spațiul de nume al clasei proxy fiind creat. Valoarea implicită este spațiul de nume global. (Opțional)

Numele fișierului creat care conține clasa proxy. Numele implicit se bazează pe numele clasei care implementează serviciul Web. (Opțional)

Numele de utilizator folosit pentru a vă conecta la serverul Web care necesită autentificare. (Opțional).







Domeniul folosit pentru a vă conecta la serverul Web care necesită autentificare. (Opțional).

Informații despre clasa proxy creată

Dacă utilizați instrumentul Wsdl.exe pentru a crea o clasă proxy, creați un fișier sursă în limba specificată. Acest fișier conține o clasă proxy care oferă acces la metode sincrone și asincrone pentru fiecare metodă de serviciu Web. De exemplu, dacă serviciul Web conține o metodă numită Adăugare. atunci clasa proxy conține următoarele metode pentru a apela metoda Add Web service: Add. BeginAdd și EndAdd. Metoda Adăugare a clasei proxy este utilizată pentru comunicarea sincronă cu metoda Add Web service, iar metodele BeginAdd și EndAdd sunt utilizate pentru comunicarea asincronă cu metoda Web service. Pentru mai multe informații despre comunicarea asincronă cu metodele de serviciu Web, consultați Interacțiunea asincronă cu serviciile Web XML.

Fiecare metodă a clasei proxy generată conține codul corespunzător pentru a interacționa cu metoda serviciului Web. Dacă apare o eroare în timpul schimbului de date între serviciul web și clasa proxy, este aruncată o excepție. Pentru mai multe informații despre tratarea excepțiilor, consultați Manipularea și crearea de excepții în serviciile Web XML.

Ordinea parametrilor specificați în metoda serviciului Web și în metoda de clasă proxy corespunzătoare poate fi diferită. În majoritatea cazurilor, ordinea parametrilor este aceeași. Cu toate acestea, dacă serviciul Web așteaptă un mesaj SOAP în formatul Document. există o variantă atunci când ordinea parametrilor nu se potrivește. Dacă parametrii de ieșire sunt specificați în metoda serviciului web înainte de parametrul de intrare, în clasa proxy parametrii de ieșire sunt plasați după parametrii de intrare. De exemplu, în exemplul următor de cod pentru metoda serviciului web MyWebMethod, parametrul de ieșire outStr este declarat înainte de parametrul de intrare inStr. Cu toate acestea, în clasa proxy, parametrul inStr este declarat înainte de parametrul outStr.

În unele cazuri, clasa proxy creată de Wsdl.exe folosește metoda numitorului cel mai puțin comun pentru a arunca obiecte la tipul specificat în descrierea serviciului. Ca rezultat, tipul generat în clasa proxy poate diferi de cel generat sau așteptat de dezvoltator. De exemplu, când programul Wsdl.exe detectează un tip ArrayList în descrierea serviciului. În clasa proxy generată, este creată o matrice Object. Pentru a vă asigura că tipurile de obiecte sunt distribuite corect, deschideți fișierul care conține clasa proxy generată și schimbați toate tipurile de obiecte incorecte la tipurile așteptate.

Wshd.exe Avertismente

Dacă mai multe descrieri de serviciu sunt transmise instrumentului Wsdl.exe, următoarele două mesaje de eroare pot fi afișate.

  • Atenție vă rog! O descriere duplicată a serviciului cu TargetNamespace =<пространство_имен_схемы> de la este omisă.

Indică faptul că pentru mai multe descrieri de servicii specificate, parametrii TargetNamespace sunt aceiași. Deoarece se presupune că parametrul TargetNamespace trebuie să fie un identificator unic pentru un document XML specific, care în acest caz este o descriere a serviciului, programul Wsdl.exe presupune că cele două descrieri de servicii se potrivesc. În consecință, instrumentul Wsdl.exe creează numai o singură clasă proxy pentru una dintre descrierile serviciului. Dacă vă așteptați să efectuați alte acțiuni, puteți schimba acest lucru. Pentru descrierile care reprezintă serviciile Web create cu ASP.NET, puteți aplica atributul WebService. Specificarea unei proprietăți unice Namespace pentru clasa în care este implementat serviciul Web. Această proprietate a Spațiului de nume este apoi utilizată ca spațiu de destinație în descrierea serviciului pentru a identifica în mod unic serviciul Web.

  • Atenție vă rog! Un model repetat cu TargetNamespace =<пространство_имен_схемы> de la este omisă.

    Specifică faptul că, pentru mai multe scheme XML, parametrii specificați pentru TargetNamespace se potrivesc în descrierile de servicii specificate. Deoarece se presupune că parametrul TargetNamespace trebuie să fie un identificator unic pentru un document XML specific, care în acest caz este o schemă XML, programul Wsdl.exe presupune că cele două scheme XML sunt aceleași. În consecință, instrumentul Wsdl.exe creează o clasă pentru numai una dintre schemele. Dacă se presupune un rezultat diferit, parametrul TargetNamespace pentru fiecare schemă XML trebuie modificat la un URI unic. Modul exact de modificare a parametrului TargetNamespace depinde de sursa schemelor XML specifice.

    Concepte de bază

    Alte resurse







    Trimiteți-le prietenilor: