Дом развитие Каковы атрибуты направления в c? - определение из техопедии

Каковы атрибуты направления в c? - определение из техопедии

Оглавление:

Anonim

Определение - Что означают Атрибуты Направления?

Атрибуты направления в C # - это теги, используемые для указания параметров объекта метода с информацией, связанной с направленным потоком данных между вызывающей стороной и вызываемой стороной.


Атрибуты направления управляют маршалингом - когда объект подготовлен для передачи через границу приложения или процесса - направления и возвращаемых значений параметра метода. Атрибуты направления применяются для изменения маршалинга во время выполнения при передаче управляемого кода, который выполняется общеязыковой средой выполнения (CLR), и неуправляемого кода, который выполняется вне контроля CLR.

Техопедия объясняет Направленные Атрибуты

InAttribute и OutAttribute - это два атрибута направления C #, используемые для сопоставления с атрибутами языка определения интерфейсов (IDL) объектной модели компонентов (COM). InAttribute сопоставляется, а OutAttribute сопоставляется. Возвращаемое значение сигнатуры управляемого метода отображается в библиотеке типов. Важно указать правильный атрибут направления для параметров метода, чтобы библиотека экспортирующего типа правильно устанавливала биты ввода / вывода.


Применяя InAttribute и OutAttribute в массивах и отформатированных неблизких типах (которые не имеют общего представления управляемой и неуправляемой памяти), вызывающая сторона видит изменения вызываемого абонента. Атрибуты направления, применяемые к этим типам, уменьшают ненужные копии во время маршалинга.


В C # InAttribute и OutAttribute используются в трех формах с двумя ключевыми словами во время связи между вызывающими и вызываемыми абонентами, а именно:

  • "out" - подразумевает
  • "ref" - подразумевает,
  • (Не указано) - (по умолчанию)

Ключевые слова out и ref используются для типов значений и сериализуемых ссылочных типов. Ключевое слово ref подразумевает, что параметр маршалируется в обоих направлениях, а out - передачу данных вызываемого абонента. Когда ref или out не используются, это означает, что данные передаются вызываемому абоненту.


Например, клиентское приложение .NET отправляет входное значение методу COM-компонента, который вычисляет результат входного значения и возвращает результат клиенту. Атрибуты направления могут применяться к параметрам метода, обслуживающего запрос, путем указания требуемого типа маршалинга для входного значения и результата.


Направленные атрибуты имеют следующие характеристики:

  • Необязательно и применяется к параметрам метода во время разработки
  • Поддерживается только для COM-взаимодействия и вызова платформы
  • InAttribute нельзя применить к параметру с ключевым словом out

Маршалер взаимодействия CLR предоставляет сервис маршалинга во время выполнения, обрабатывая аргументы вызова метода и возвращая значения между управляемой и неуправляемой памятью. Если направленные атрибуты не определены, маршалер определяет направленный поток на основе типа параметра и модификатора (если есть). Маршалер работает следующим образом:

  • Он не перезаписывает данные, передаваемые в качестве параметра «In» из неуправляемого кода. Таким образом, могут передаваться только данные только для чтения, такие как данные, к которым обращаются одновременно.
  • При передаче объектов - таких как базовые или двоичные строки (BSTR) - с установленным выделением памяти, правильная последовательность выделения / освобождения выполняется в соответствии с настройками In / Out.
Это определение было написано в контексте C #
Каковы атрибуты направления в c? - определение из техопедии