Utilisation de l'attribut MarshalAsAttribute

Mise à jour : novembre 2007

Vous pouvez utiliser l'attribut MarshalAsAttribute pour personnaliser le comportement de marshaling. Par exemple, il est possible de réaliser les tâches suivantes :

  • Marshaler les tableaux et les chaînes dans une structure.

  • Fournir la souplesse nécessaire pour prendre en charge des scénarios COM Interop communs.

  • Fournir une cohérence pour les types de marshaling par le biais de l'appel de plate-forme et du marshaleur vtable, par rapport au marshaleur IDispatch.

Le tableau suivant décrit la prise en charge du marshaling pour les valeurs de l'énumération UnmanagedType.

Type non managé

Types valides pour

Pris en charge dans les structures

BStr, TBStr

String

LPWStr,

LPStr, LPTStr

String

Oui

IUnknown

Object

Oui

IDispatch

Object

Oui

ByValTStr

String (dans les structures uniquement)

Oui

ByValArray

Tout tableau

Oui

SafeArray

Tout tableau

Oui

VBByRefStr

String

Bool

Boolean,

Types entiers

I1, I2, I4

Types entiers de longueur appropriée

U1, U2, U4

Types entiers non signés de longueur appropriée

I8

N/A

U8

N/A

R4

Nombres réels de 4 octets

R8

Nombres réels de 8 octets

Struct

Object

Interface

Object

SysInt, SysUInt

Types entiers de longueur et de signe appropriés

AnsiBStr

N/A

VariantBool

Boolean

FunctionPtr

N/A

AsAny

N/A

LPArray

N/A

LPStruct

N/A

Error

Entiers de 4 octets

Currency

Decimal

Voir aussi

Autres ressources

Prise en charge du marshaling dans le .NET Compact Framework