Compartir a través de


MarshalMode Enumeración

Definición

Representa los distintos modos de serialización utilizados por CustomMarshallerAttribute para indicar cuándo se aplica un serializador.

public enum class MarshalMode
public enum MarshalMode
type MarshalMode = 
Public Enum MarshalMode
Herencia
MarshalMode

Campos

Nombre Valor Description
Default 0

Todos los modos. Se usará un serializador especificado con este modo si no hay ningún serializador específico para un modo de uso determinado.

ManagedToUnmanagedIn 1

Por valor y in parámetros en escenarios administrados a no administrados, como P/Invoke.

ManagedToUnmanagedRef 2

ref parámetros en escenarios administrados a no administrados, como P/Invoke.

ManagedToUnmanagedOut 3

out parámetros y valores devueltos en escenarios administrados a no administrados, como P/Invoke. El serializador convierte del tipo no administrado al tipo administrado.

UnmanagedToManagedIn 4

Por valor y in parámetros en escenarios no administrados a administrados, como P/Invoke inverso.

UnmanagedToManagedRef 5

ref parámetros en escenarios no administrados a administrados, como P/Invoke inverso.

UnmanagedToManagedOut 6

out parámetros y valores devueltos en escenarios no administrados a administrados, como P/Invoke inverso. El serializador convierte del tipo administrado al tipo no administrado.

ElementIn 7

Elementos de matrices pasadas con in o por valor en escenarios de interoperabilidad.

ElementRef 8

Elementos de matrices pasadas con ref o pasadas por valor con y OutAttributeInAttribute en escenarios de interoperabilidad.

ElementOut 9

Elementos de matrices pasadas con out o pasadas por valor con solo OutAttribute en escenarios de interoperabilidad.

Comentarios

Cada nombre de miembro sigue el patrón {CallDirection}{DataFlow}:

  • Dirección de llamada (ManagedToUnmanaged o UnmanagedToManaged) indica qué lado inicia la llamada. ManagedToUnmanaged se aplica a las llamadas P/Invoke. UnmanagedToManaged se aplica a escenarios inversos P/Invoke o COM en los que el código nativo llama a código administrado.
  • El flujo de datos (In, Outo Ref) indica cómo se mueven los datos en relación con la llamada. In significa que los datos fluyen del autor de la llamada al destinatario. Out significa que los datos fluyen del destinatario al autor de la llamada, que incluye los out parámetros y los valores devueltos. Ref significa que los datos fluyen en ambas direcciones.

Por ejemplo, ManagedToUnmanagedOut se aplica cuando el código administrado llama a código no administrado (P/Invoke) y los datos fluyen de nuevo al autor de la llamada; esto abarca out los parámetros y los valores devueltos. El serializador de este modo convierte del tipo no administrado al tipo administrado.

Se aplica a