Obsah:
Definícia - Čo znamenajú smerové atribúty?
Smerové atribúty v C # sú značky používané na špecifikovanie parametrov metódy objektu s informáciami týkajúcimi sa smerového toku údajov medzi volajúcim a volajúcim.
Smerové atribúty riadia zoradenie smeru a návratových hodnôt parametra metódy, ak je objekt pripravený na prenos cez hranice aplikácie alebo procesu. Smerové atribúty sa používajú na modifikáciu runtime zaradenia pri komunikácii riadeného kódu, ktorý sa vykonáva pomocou Common Language Runtime (CLR), a nespravovaného kódu, ktorý sa vykonáva mimo kontroly nad CLR.
Techopedia vysvetľuje smerové atribúty
InAttribute a OutAttribute sú dva smerové atribúty C #, ktoré sa používajú na mapovanie na atribúty jazyka COML (COM) Definition Language Interface Definition Language (IDL). Mapy atribútov do a Mapy atribútov do. Vrátená hodnota podpisu spravovanej metódy sa mapuje do knižnice typov. Je nevyhnutné špecifikovať správny smerový atribút parametrov metódy, aby exportujúca knižnica typov správne nastavila vstupné / výstupné bity.
Pri použití atribútov InAttribute a OutAttribute v poliach a formátovaných neblikateľných typov (ktoré nemajú spoločné znázornenie spravovanej a nespravovanej pamäte), volajúci uvidia zmeny volaní. Smerové atribúty aplikované na tieto typy znižujú zbytočné kópie počas zoradenia.
V C # sa atribúty InAttribute a OutAttribute používajú v komunikácii volajúceho a volajúceho v troch formách s dvoma kľúčovými slovami:
- „mimo“ - naznačuje
- „ref“ - naznačuje,
- (Nie je uvedené) - (predvolene)
Kľúčové slová „out“ a „ref“ sa používajú pre typy hodnôt a porovnateľné referenčné typy. Kľúčové slovo ref znamená, že parameter je zaradený v oboch smeroch a von znamená prenos údajov Callee. Ak sa nepoužívajú odkazy alebo vylúčenia, znamená to, že údaje sa prenášajú do volaného.
Napríklad klientska aplikácia .NET odošle vstupnú hodnotu metóde komponentu COM, ktorá vypočíta výsledok vstupnej hodnoty a vráti výsledok klientovi. Smerové atribúty sa môžu aplikovať na parametre metódy obsluhujúcej požiadavku tak, že sa pre vstupnú hodnotu a výsledok uvedie požadovaný typ zaraďovania.
Smerové atribúty majú nasledujúce charakteristiky:
- Voliteľné a použité na parametre metódy v čase návrhu
- Podporované iba pre vyvolanie interopu a platformy COM
- InAttribute nemožno použiť na parameter s kľúčovým slovom out
Interprízový sprostredkovateľ CLR poskytuje službu zoradenia za behu spracovaním argumentov volania metód a návratových hodnôt medzi riadenou a nespravovanou pamäťou. Ak nie sú definované smerové atribúty, traťový komisár určuje smerový tok na základe typu parametra a modifikátora (ak existuje). Marshaler pracuje nasledovne:
- Neprepisuje údaje odovzdané ako parameter „In“ z nespravovaného kódu. Môžu sa teda odovzdávať iba údaje určené len na čítanie, ako sú napríklad súčasne prístupné údaje.
- Pri odovzdávaní objektov - napríklad základných alebo binárnych reťazcov (BSTR) - so zavedeným pridelením pamäte sa dodržiava správna alokačná / deallokačná postupnosť podľa nastavení In / Out.
