Sisällysluettelo:
Määritelmä - Mitä suuntaominaisuudet tarkoittavat?
Suuntaatribuutit, C # -merkinnässä, ovat tageja, joita käytetään määrittelemään objektimenetelmäparametrit tai parametrit tietoineen, jotka liittyvät soittajan ja soittajan väliseen suuntavirtaan.
Suuntaominaisuudet ohjaavat menetelmäparametrin suunta- ja paluuarvojen marshalingia - kun objekti valmistellaan siirtämistä varten sovelluksen tai prosessin rajan yli. Suuntaattribuutteja käytetään muokkaamaan ajonaikaista yhdistämistä samalla kun välitetään hallittua koodia, jonka suorittaa Common Language Runtime (CLR), ja hallitsematonta koodia, joka suoritetaan CLR: n valvonnan ulkopuolella.
Techopedia selittää suuntaominaisuudet
InAttribute ja OutAttribute ovat kahta C # -suuntaominaisuutta, joita käytetään kartoittamaan komponenttiobjektimallin (COM) rajapintamäärityskieli (IDL) -määritteitä. InAttribute maps for ja OutAttribute maps to. Hallitun menetelmän allekirjoituksen palautusarvo kuvaa tyyppikirjastossa. On välttämätöntä määrittää oikea suuntaominaisuus menetelmäparametreille, jotta vietävä tyyppikirjasto asettaa oikein In / Out-bitit.
Sovellettaessa InAttribute- ja OutAttribute-taulukoita ja formatoituja ei-blottable-tyyppejä (joilla ei ole yleistä hallittua ja hallitsematonta muistinesitystä) soittaja näkee soiton muutokset. Näihin tyyppeihin sovelletut suuntaominaisuudet vähentävät turhia kopioita marshalingin aikana.
Kohdassa C # InAttribute ja OutAttribute käytetään kolmessa muodossa kahdella avainsanalla soittajan ja soittajan viestinnän aikana seuraavasti:
- "out" - tarkoittaa
- "ref" - tarkoittaa,
- (Ei määritelty) - (oletuksena)
Ulos- ja ref-avainsanoja käytetään arvolajeihin ja sarjamuotoisiin viitetyyppeihin. Ref-avainsana tarkoittaa, että parametri on järjestetty molemmissa suunnissa, ja out tarkoittaa, että tiedonsiirto tapahtuu. Kun ref tai out ei ole käytössä, tämä tarkoittaa, että tiedot siirretään soittajalle.
Esimerkiksi .NET-asiakassovellus lähettää tuloarvon COM-komponenttimenetelmälle, joka laskee tuloarvon tuloksen ja palauttaa tuloksen asiakkaalle. Suuntamääritteitä voidaan soveltaa pyyntöä palvelevan menetelmän parametreihin ilmoittamalla vaadittava marshaling-tyyppi syöttöarvolle ja tulokselle.
Suunta-määritteillä on seuraavat ominaisuudet:
- Valinnainen ja sovellettu menetelmäparametreihin suunnitteluvaiheessa
- Tuettu vain COM-yhteensovittamis- ja käyttöympäristöhakemusten yhteydessä
- InAttribuuttia ei voida käyttää parametrissa, jolla on avainsana pois
CLR interop marshaler tarjoaa marshaling-palvelun suorituksen aikana käsittelemällä menetelmäkutsuargumentteja ja palautusarvoja hallitun ja hallitsemattoman muistin välillä. Jos suuntaominaisuuksia ei ole määritelty, marshaler määrittää suuntavirtauksen parametrityypin ja modifioijan (jos sellainen on) perusteella. Marshaler toimii seuraavalla tavalla:
- Se ei korvaa hallitsemattomasta koodista "In" -parametrina välitettyjä tietoja. Siten vain luku-data, kuten samanaikaisesti käytetty data, voidaan siirtää.
- Kun objektit - kuten perus- tai binaarijono (BSTR) - kuljetetaan vakiintuneella muistin allokoinnilla, oikeaa allokointi- / kauppapaikka-sekvenssiä seurataan In / Out-asetusten mukaisesti.
