MarshalMode Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет различные режимы маршаллинга, используемые для CustomMarshallerAttribute указания того, когда применяется маршаллизатор.
public enum class MarshalMode
public enum MarshalMode
type MarshalMode =
Public Enum MarshalMode
- Наследование
Поля
| Имя | Значение | Описание |
|---|---|---|
| Default | 0 | Все режимы. Маршаллировщик, указанный в этом режиме, будет использоваться, если для заданного режима использования нет конкретного маршаллатора. |
| ManagedToUnmanagedIn | 1 | По значению и |
| ManagedToUnmanagedRef | 2 |
|
| ManagedToUnmanagedOut | 3 |
|
| UnmanagedToManagedIn | 4 | По значению и |
| UnmanagedToManagedRef | 5 |
|
| UnmanagedToManagedOut | 6 |
|
| ElementIn | 7 | Элементы массивов, передаваемые с |
| ElementRef | 8 | Элементы массивов, передаваемые или передаваемые по значению, с |
| ElementOut | 9 | Элементы массивов, переданные или |
Комментарии
Каждое имя члена следует шаблону {CallDirection}{DataFlow}:
-
Направление вызова (
ManagedToUnmanagedилиUnmanagedToManaged) указывает, какая сторона инициирует вызов.ManagedToUnmanagedприменяется к вызовам P/Invoke.UnmanagedToManagedПрименяется к сценариям обратного P/Invoke или COM, в которых машинный код вызывает управляемый код. -
Поток данных (
InилиOutRef) указывает, как данные перемещаются относительно вызова.Inозначает потоки данных от вызываемого абонента.Outозначает потоки данных от вызываемого абонента, который включает как параметры, такoutи возвращаемые значения.Refозначает потоки данных в обоих направлениях.
Например, применяется, ManagedToUnmanagedOut когда управляемый код вызывает неуправляемый код (P/Invoke) и потоки данных обратно вызывающей стороне— это охватывает out параметры и возвращаемые значения. Маршализатор для этого режима преобразуется из неуправляемого типа в управляемый тип.