Verwenden des MarshalAsAttribute-Attributs
Aktualisiert: November 2007
Sie können das MarshalAsAttribute-Attribut verwenden, um das Marshallingverhalten anzupassen. Sie können z. B. folgende Aufgaben ausführen:
Marshallen von Arrays und Zeichenfolgen in einer Struktur.
Bereitstellen der benötigten Flexibilität, um allgemeine COM-Interop-Szenarien zu unterstützen.
Bereitstellen von Konsistenz bei Marshallingtypen über Plattformaufruf und den vtable-Marshaller im Vergleich zum IDispatch-Marshaller.
In der folgenden Tabelle wird die Marshallingunterstützung für die Werte der UnmanagedType-Enumeration beschrieben.
Nicht verwalteter Typ |
Gültige Typen für |
Unterstützt in Strukturen |
---|---|---|
BStr, TBStr |
||
LPWStr, LPStr, LPTStr |
Ja |
|
IUnknown |
Ja |
|
IDispatch |
Ja |
|
ByValTStr |
String (nur in Strukturen) |
Ja |
ByValArray |
Beliebiges Array |
Ja |
SafeArray |
Beliebiges Array |
Ja |
VBByRefStr |
||
Bool |
ganzzahlige Typen |
|
I1, I2, I4 |
Ganzzahlige Typen entsprechender Länge |
|
U1, U2, U4 |
Ganzzahlige Typen ohne Vorzeichen entsprechender Länge |
|
I8 |
Nicht zutreffend |
|
U8 |
Nicht zutreffend |
|
R4 |
Reelle 4-Byte-Zahlen |
|
R8 |
Reelle 8-Byte-Zahlen |
|
Struct |
||
Interface |
||
SysInt, SysUInt |
Ganzzahlige Typen mit entsprechendem Vorzeichen und entsprechender Länge |
|
AnsiBStr |
Nicht zutreffend |
|
VariantBool |
||
FunctionPtr |
Nicht zutreffend |
|
AsAny |
Nicht zutreffend |
|
LPArray |
Nicht zutreffend |
|
LPStruct |
Nicht zutreffend |
|
Error |
4-Byte-Ganzzahl |
|
Currency |