Programavimas

Mano du centai už sutartis WCF

WCF („Windows Communication Foundation“) yra saugi, patikima ir keičiamo dydžio pranešimų siuntimo platforma, skirta kurti paslaugas .Net. Dirbdami su WCF, pirmiausia turite sudaryti paslaugų sutartį ir tada apibrėžti joje paslaugų operacijas ar operacijų sutartis. WCF turite daug įvairių sutarčių rūšių - paslaugų sutartis, duomenų sutartis, klaidų sutartis, pranešimų sutartis ir operacijų sutartis.

WCF paslaugos skelbia sutartis, kad būtų lengviau bendrauti su paslaugų vartotojais. Sutartis yra standartas, kuris naudojamas WCF, norint nurodyti, ką paslauga turėtų atlikti. WCF sutartis galima suskirstyti į dvi skirtingas kategorijas:

  • Elgesio sutartys: WCF mes galime sudaryti tris elgesio sutartis, būtent „ServiceContract“, „OperationContract“ ir „FaultContract“.
  • Struktūrinės sutartys: tai apima „DataContract“ ir „MessageContract“.

„ServiceContracts“ ir „OperationContracts“

„ServiceContract“ naudojama paslaugų operacijoms, kurios yra prieinamos paslaugų vartotojui konkrečiame paslaugos galiniame taške, žymėti. Iš esmės „ServiceContract“ naudojama operacijoms, kurias paslaugų klientas gali naudoti, nurodyti. „ServiceContract“ apibrėžiamas naudojant „ServiceContract“ atributą - paprastai taikomas sąsajai.

„ServiceContract“ gali nustatyti paslaugų teikėjo ir paslaugų vartotojo pranešimų mainų modelį ir atlikti vieną ar daugiau paslaugų operacijų; tai vadinamos operacijų sutartimis. Operacijos sutartis naudojama apibrėžiant paslaugos metodo parašą, taip pat sandorio eigą, paslaugos veikimo kryptį ir kaltės sutartį (-es), kuri (-ios) gali būti susijusi (-i).

Toliau pateiktas kodų sąrašas parodo, kaip apibrėžta tipinė paslaugų sutartis.

[„ServiceContract“]

sąsaja „ITestService“

{

[OperationContract]

eilutė „GetMessage“ ();

}

viešoji klasė TestService: ITestService

{

viešoji eilutė „GetMessage“ ()

      {

grįžti „Sveikas pasaulis!“;

      }

}

Aukščiau pateiktame kodų sąraše vienintelė paslaugų sutartis paslaugų sutartyje yra „GetMessage“. Atkreipkite dėmesį, kaip buvo nurodyti atributai. Be to, jei savo paslaugų sutartyje turite metodą, kuriam nenustatytas operacijos sutarties atributas, metodas negali būti parodytas paslauga, t. Y. Metodas negali būti vartojamas paslaugų vartotojui.

„DataContracts“, „MessageContracts“ ir „FaultContracts“

„DataContract“ naudojama duomenims, kuriais reikia apsikeisti viela, apibūdinti. Jis naudojamas nurodyti, kaip gali būti keičiamasi duomenimis tarp paslaugų teikėjo ir paslaugos vartotojo. Galite naudoti atributą [DataContract], kad papuoštumėte savo tipą, kad duomenis būtų galima suredijuoti dar prieš juos perduodant per laidą. Apibrėždami duomenų sutartis, norėdami apibrėžti duomenų sutarties ypatybes, paprastai turėsite naudoti duomenų narius.

Šis kodo fragmentas parodo, kaip galite papuošti klasę atributu [DataContract].

[Duomenų sutartis]

visuomenės klasės darbuotojas

{

[DataMember]

viešosios eilutės ID;

[DataMember]

vieša eilutė FirstName;

[DataMember]

vieša eilutė Pavardė;

}

Pranešimo sutartis gali būti naudojama papuošti pranešimo turinį WCF. Daugeliu atvejų jums nereikės naudoti pranešimų sutarčių - pakaks naudoti duomenų sutartis. Jei jums reikia išsamios SOAP pranešimų kontrolės, galite pasinaudoti pranešimų sutartimis. Norėdami pasiekti SOAP antraštes, galite naudoti pranešimų sutartis.

Galite naudoti pranešimų sutartis norėdami nurodyti reikalingo SOAP pranešimo formatą. Nors „MessageHeaderAttribute“ gali būti taikomas nariams, kuriuos norite įtraukti į SOAP antraštes, „MessageBodyMemberAttribute“ galima naudoti apibrėžiant narius, kurie turėtų būti SOAP pranešimo turinio dalis.

Galite apibrėžti pranešimo sutartį taikydami „MessageContractAttribute“, kaip parodyta žemiau.

[Pranešimo sutartis]

viešosios klasės operacija

{

[MessageHeader] public DateTime data;

[MessageBodyMember] public int suma;

}

Sutrikimo sutartis WCF naudojama apibrėžti ir platinti klaidas, kurios gali atsirasti vykdant paslaugų operaciją. Iš esmės galite pasinaudoti sutartimis dėl gedimų, kad klaidos pranešimai būtų perduoti paslaugų vartotojui, kai jūsų tarnyboje įvyksta klaida. Atkreipkite dėmesį, kad galite papuošti savo operacijų sutartis naudodamiesi sutartimi dėl kaltės - paslaugų teikimo operacijos sutartyje gali būti susieta viena ar daugiau kaltės sutarčių. Štai pavyzdys, parodantis, kaip gali būti naudojamos sutartys dėl kaltės. Atkreipkite dėmesį, kad žemiau pateiktame kodo pavyzdyje operacijos sutarties sutarčiai buvo taikomos dvi klaidų sutartys, pavadintos „FaultContractOne“ ir „FaultContractTwo“.

[„ServiceContract“]

sąsajos sutartis

{

[FaultContract (typeof (FaultContractOne)]]

[„FaultContract“ (typeof („FaultContractTwo“))]]

[OperationContract]

eilutė „GetMessage“ ();

 }

$config[zx-auto] not found$config[zx-overlay] not found