Utilizzo dell'attributo MarshalAsAttribute
Aggiornamento: novembre 2007
È possibile utilizzare l'attributo MarshalAsAttribute per personalizzare il comportamento del marshalling. Ad esempio, è possibile effettuare le seguenti attività:
Eseguire il marshalling di matrici e stringhe in una struttura.
Fornire la flessibilità necessaria per supportare comuni scenari di interoperabilità COM.
Fornire uniformità nei tipi di marshalling tramite il richiamo piattaforma e il gestore di marshalling vtable rispetto al gestore di marshalling IDispatch.
Nella tabella riportata di seguito viene descritto il supporto di marshalling per i valori dell'enumerazione UnmanagedType.
Tipo non gestito |
Tipi validi in |
Supporto nelle strutture |
---|---|---|
BStr, TBStr |
||
LPWStr, LPStr, LPTStr |
Sì |
|
IUnknown |
Sì |
|
IDispatch |
Sì |
|
ByValTStr |
String (solo nelle strutture) |
Sì |
ByValArray |
Qualsiasi matrice |
Sì |
SafeArray |
Qualsiasi matrice |
Sì |
VBByRefStr |
||
Bool |
tipi integer |
|
I1, I2, I4 |
Tipi integer di lunghezza appropriata |
|
U1, U2, U4 |
Tipi integer senza segno di lunghezza appropriata |
|
I8 |
N/D |
|
U8 |
N/D |
|
R4 |
Numeri reali a 4 byte |
|
R8 |
Numeri reali a 8 byte |
|
Struct |
||
Interface |
||
SysInt, SysUInt |
Tipi integer di segno e lunghezza appropriati |
|
AnsiBStr |
N/D |
|
VariantBool |
||
FunctionPtr |
N/D |
|
AsAny |
N/D |
|
LPArray |
N/D |
|
LPStruct |
N/D |
|
Error |
Valori integer a 4 byte |
|
Currency |