Atrybuty kierunkowe

Autor: Lewis Jackson
Data Utworzenia: 8 Móc 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
FIFA 22 - NAJLEPSZE USTAWIENIA STEROWANIA i KAMERY!
Wideo: FIFA 22 - NAJLEPSZE USTAWIENIA STEROWANIA i KAMERY!

Zawartość

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 - w przypadku gdy obiekt jest przygotowany do transferu przez granicę aplikacji lub procesu - parametrów kierunku i wartości zwracanych parametrów 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.


Wprowadzenie do Microsoft Azure i Microsoft Cloud | W tym przewodniku dowiesz się, na czym polega przetwarzanie w chmurze i jak Microsoft Azure może pomóc w migracji i prowadzeniu firmy z chmury.

Techopedia wyjaśnia atrybuty kierunkowe

InAttribute i OutAttribute to dwa atrybuty kierunkowe C # używane do mapowania na atrybuty języka definicji interfejsów COM (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 jest wartością wejściową dla metody składnika COM, która oblicza wynik wartości wejściowej i zwraca wynik klientowi. 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 con C #