Dom Rozwój Jakie są atrybuty kierunkowe w c? - definicja z techopedia

Jakie są atrybuty kierunkowe w c? - definicja z techopedia

Spisu treści:

Anonim

Definicja - Co oznaczają atrybuty kierunkowe?

Atrybuty kierunkowe, w języku C #, są znacznikami używanymi do określania parametrów metody obiektowej z informacjami związanymi z kierunkowym przepływem danych między dzwoniącym a odbiorcą.


Atrybuty kierunkowe kontrolują marshaling - gdy obiekt jest przygotowany do transferu przez granicę aplikacji lub procesu - wartości parametru i kierunku parametru metody. Atrybuty kierunkowe są stosowane do modyfikowania zestawienia środowiska wykonawczego podczas komunikacji kodu zarządzanego, który jest wykonywany przez środowisko uruchomieniowe języka wspólnego (CLR), oraz kodu niezarządzanego, który jest wykonywany poza kontrolą CLR.

Techopedia wyjaśnia atrybuty kierunkowe

InAttribute i OutAttribute to dwa atrybuty kierunkowe C # używane do mapowania na atrybuty języka definicji interfejsu (COM) interfejsu Component Object Model (COM). Mapy InAttribute do i Mapy OutAttribute do. Wartość zwracanej sygnatury metody zarządzanej jest odwzorowywana w bibliotece typów. Konieczne jest określenie odpowiedniego atrybutu kierunkowego parametrów metody, aby biblioteka typów eksportu poprawnie ustawiała bity wejścia / wyjścia.


Dzięki zastosowaniu InAttribute i OutAttribute w tablicach i sformatowanych typach, które nie są blittable (które nie mają wspólnej reprezentacji pamięci zarządzanej i niezarządzanej), osoba dzwoniąca widzi zmiany strony odbierającej. Atrybuty kierunkowe zastosowane do tych typów zmniejszają niepotrzebne kopie podczas zestawiania.


W języku C # InAttribute i OutAttribute są używane w trzech postaciach z dwoma słowami kluczowymi podczas komunikacji z dzwoniącym i odbiorcą, w następujący sposób:

  • „out” - oznacza
  • „ref” - oznacza,
  • (Nie określono) - (domyślnie)

Słowa kluczowe out i ref są używane dla typów wartości i możliwych do serializacji typów referencyjnych. Słowo kluczowe ref oznacza, że ​​parametr jest zestawiany w obu kierunkach, a out oznacza transfer danych odbiorcy. Gdy odwołanie lub wyjście nie są używane, oznacza to, że dane są przesyłane do odbiorcy.


Na przykład aplikacja kliencka .NET wysyła wartość wejściową do metody komponentu COM, która oblicza wynik wartości wejściowej i zwraca wynik do klienta. Atrybuty kierunkowe można zastosować do parametrów metody obsługującej żądanie, wskazując wymagany typ zestawiania dla wartości wejściowej i wyniku.


Atrybuty kierunkowe mają następujące cechy:

  • Opcjonalne i stosowane do parametrów metody w czasie projektowania
  • Obsługiwane tylko dla COM COM i platformy wywoływania
  • InAttribute nie można zastosować do parametru ze słowem kluczowym out

Interamp marshaler CLR zapewnia usługę zestawiania w czasie wykonywania, obsługując argumenty wywołania metody i zwracając wartości między pamięcią zarządzaną i niezarządzaną. Jeśli atrybuty kierunkowe nie są zdefiniowane, marshaler określa przepływ kierunkowy na podstawie typu parametru i modyfikatora (jeśli występuje). Marszałek działa w następujący sposób:

  • Nie zastępuje danych przekazanych jako parametr „In” z niezarządzanego kodu. W związku z tym mogą być przekazywane tylko dane tylko do odczytu, takie jak dane jednocześnie dostępne.
  • Podczas przekazywania obiektów - takich jak łańcuchy podstawowe lub binarne (BSTR) - z ustalonym przydziałem pamięci, przestrzegana jest właściwa sekwencja alokacji / dezalokacji zgodnie z ustawieniami wejścia / wyjścia.
Ta definicja została napisana w kontekście C #
Jakie są atrybuty kierunkowe w c? - definicja z techopedia