Atribute direcționale

Autor: Lewis Jackson
Data Creației: 8 Mai 2021
Data Actualizării: 1 Iulie 2024
Anonim
HTML Global Attributes - dir Attribute
Video: HTML Global Attributes - dir Attribute

Conţinut

Definiție - Ce înseamnă atributele direcționale?

Atributele direcționale, în C #, sunt etichete utilizate pentru a specifica parametrii (parametrii) metodei obiectului, cu informații legate de fluxul direcțional de date între apelant și callee.

Atributele direcționale controlează marșul - unde un obiect este pregătit pentru transferul peste o aplicație sau un proces de graniță - a parametrilor metodei direcția și valorile de retur. Atributele direcționale sunt aplicate pentru a modifica marsupia de rulare în timp ce comunică codul gestionat, care este executat de Common Language Runtime (CLR) și codul neadministrat, care este executat în afara controlului CLR.


O introducere în Microsoft Azure și Microsoft Cloud | În acest ghid, veți afla despre ce este vorba despre cloud computing și despre cum Microsoft Azure vă poate ajuta să migrați și să conduceți afacerea din cloud.

Techopedia explică atributele direcționale

InAttribute și OutAttribute sunt cele două atribute direcționale C # utilizate pentru a face mapare cu atributele Modulului de definire a interfeței (COM) a modelelor de interfață (COM). InAttribute hărți la, și OutAttribute hărți la. Harta valorii de întoarcere a semnăturii metodei gestionate într-o bibliotecă tip. Este esențial să specificați atributul direcțional corect pentru parametrii metodei, astfel încât biblioteca de tip exportator să stabilească corect biții de intrare / ieșire.

Prin aplicarea InAttribute și OutAttribute în matricele și tipurile care nu sunt blittate formatate (care nu au o reprezentare comună administrată și neadministrată a memoriei), apelantul vede schimbări callee. Atributele direcționale aplicate acestor tipuri reduc copii inutile în timpul marșului.

În C #, InAttribute și OutAttribute sunt utilizate în trei forme cu două cuvinte cheie în timpul comunicării apelantului și callee, după cum urmează:


  • „afară” - Implica
  • "ref" - Implica,
  • (Nimeni specificat) - (implicit)

Cuvintele cheie out și ref sunt utilizate pentru tipuri de valoare și tipuri de referință serializabile. Cuvântul cheie ref implică faptul că parametrul este marcat în ambele direcții, iar ieșirea implică transferul de date callee. Atunci când nu sunt utilizate ref sau în afara, aceasta implică transferul de date către callee.

De exemplu, o aplicație client .NET reprezintă o valoare de intrare pentru o metodă de componentă COM, care calculează rezultatul valorii de intrare și returnează rezultatul clientului. Atributele direcționale pot fi aplicate parametrilor metodei care deservesc solicitarea, indicând tipul de marshaling necesar pentru valoarea și rezultatul de intrare.

Atributele direcționale au următoarele caracteristici:

  • Opțional și aplicat parametrilor metodei la momentul proiectării
  • Acceptat numai pentru interoptarea COM și pentru invocarea platformei
  • InAttribute nu poate fi aplicat unui parametru cu un cuvânt cheie de ieșire

Marshalerul de interoperabilitate CLR oferă un serviciu de marshaling în timpul rulării, tratând argumentele de apel ale metodei și valorile de retur între memoria gestionată și cea neadministrată. Dacă atributele direcționale nu sunt definite, marshalerul determină fluxul direcțional bazat pe tipul parametrului și modificatorul (dacă există). Mareșalul funcționează în felul următor:


  • Nu suprascrie datele transmise ca parametru "In" din codul neadministrat. Astfel, pot fi transmise doar date numai în citire, cum ar fi datele accesate simultan.
  • În timp ce treceți obiecte - cum ar fi șiruri de bază sau binare (BSTR) - cu alocarea de memorie stabilită, secvența de alocare / alocare corespunzătoare este urmată în funcție de setările In / Out.
Această definiție a fost scrisă în versiunea lui C #