Partilhar via


Usando o atributo MarshalAsAttribute

Você pode usar o MarshalAsAttribute atributo para personalizar o comportamento do marshaling. Por exemplo, você pode executar as seguintes tarefas:

  • Empacotar matrizes e sequências em uma estrutura.

  • Fornecer flexibilidade para suportar cenários comuns com a interoperabilidade necessária.

  • Fornecer consistência no marshaling de tipos por meio da plataforma e empacotador vtable sistema autônomo comparado com o IDispatch empacotador.

A tabela a seguir descreve o suporte de marshaling para os valores a partir de UnmanagedType enumeração.

Tipos não gerenciados

Tipos válidos no

Suportados nas estruturas

BStr, TBStr

String

LPWStr,

LPStr, LPTStr

String

Sim

IUnknown

Object

Sim

IDispatch

Object

Sim

ByValTStr

String (nas estruturas somente)

Sim

ByValArray

Qualquer matriz

Sim

SafeArray

Qualquer matriz

Sim

VBByRefStr

String

Bool

Boolean,

Tipos inteiros

I1, I2, I4

Tipos inteiros de tamanho apropriado

U1, U2, U4

Tipos inteiro sem-sinal de tamanho apropriado

I8

N/A

U8

N/A

R4

Números reais de 4 bytes

R8

Números reais de 8 bytes

Struct

Object

Interface

Object

SysInt, SysUInt

Tipos inteiros de sinal e comprimento apropriados

AnsiBStr

N/A

VariantBool

Boolean

FunctionPtr

N/A

AsAny

N/A

LPArray

N/A

LPStruct

N/A

Error

Inteiros de 4 bytes

Currency

Decimal

Consulte também

Outros recursos

Suporte de marshaling no .NET Compact estrutura